js中parentnode?js parse
今天给各位分享js中parentnode的知识,其中也会对js parse进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
js中提到的dom引用是什么意思
这两行代码要区分的是DOM对象和jQuery对象的区别。
DOM对象和jQuery对象是两种不同的对象,它们的实例也因此具有不同的属性和方法。通常要操作页面中的节点,我们都需要想办法获取对该节点的引用。比如如下代码:
vardom=document.getElementById('节点id');这是通过节点的id来获取一个页面节点,也就是对节点的引用。这个时候,我们对变量dom的任何操作,实际上就是对页面节点的操作,比如说修改样式、移除节点、获取属性等等。如下:
dom.style.display='none';//隐藏节点
dom.parentNode.removeChild(dom);//删除节点
varheight=dom.offsetHeight;//获取节点高度像上面的style、parentNode、removeChild、offsetHeight等等,都是DOM对象的属性或方法。
因为DOM对象不属于javascript的一部分,它是各个浏览器对javascript的扩展,但各个浏览器又都在实现上有一些不一致,导致javascript代码需要处理很多兼容性问题。为了解决这些兼容性问题,提高开发效率,jQuery库就诞生了。
jQuery解决了兼容性问题,再加上它的实现极其巧妙,因此得到了很多人的吹捧。以前有一点javascript基础的人,要写出稍微复杂些的特效,几乎都不可能,但因为jQuery的出现,类似显示隐藏、各种动画效果,都只需要简单的几行代码即可。有些人甚至觉得,jQuery甚至都能替代javascript,而且在各个前端学习的站点、博客中,也是将jQuery和javascript并列作为一类。
但问题是,不了解基础的javascript,在遇到问题、异常的时候,你就只能干瞪眼了。任何语言,框架和库都无法取代最基础的语法,而且框架和库也都是由最简单的语法丰富起来的。
jQuery实际上可以说是一个大的类——javascript实现的类。以一个简单的模型来说,如下:
;(function(window,undefined){
window.$=window.jQuery=jQuery;
//定义jQuery类
functionjQuery(selector,content){
content=content||document;
vareles=content.querySelectorAll(selector);
varlen=eles.length;
//给jQuery对象添加长度属性
this.length=len;
//方便获取dom对象,获取实例:jQuery('#id')[0];
for(vari=0;i<len;i++){
this[i]=eles[i];
}
}
//扩展原型
jQuery.prototype={
//构造函数
constructor:jQuery,
//根据索引获取dom对象
get:function(index){
returnthis[index];
}
}
})(window);这是一段jQuery的模拟代码,你可以使用如下方式调用:
varjqObj=newjQuery('.class');因为jQuery的特殊处理,写jQuery代码的时候不需要new即可用,但这里没有处理,所以需要加上new关键字。
上面返回的jqObj,就是我定义的jQuery的一个对象,它是jQuery对象,已经不是DOM对象了。我可以写如下代码:
vardom=jqObj.get(1);//获取jQuery对象中下标为1的DOM对象然后变量dom就和之前的变量dom一样,可以使用DOM对象的属性和方法了。
但是,我们不能写下面的代码,否则它就会报异常:
jqObj.style.color='red';因为jQuery对象的实例,根本就没有style这个属性。jQuery也是一样的,jQuery对象和DOM对象是两种不同的对象,它们的内部结构(比如上面的get方法是自定义的)也是不同的。当你把jQuery对象当做DOM对象使用时,你调用该对象的任何属性和方法,都有可能触发一个属性或方法未定义的异常,因为这个属性或方法确实不存在。
所以,如果你使用了jQuery库,那你就得在操作节点的时候,注意区分这个节点对象到底是DOM对象,还是jQuery对象。基本上jQuery的方法如果返回节点对象,返回值大多是jQuery对象,但也有例外,比如get等。
回到你的题目,通过jQuery获取的canvas对象,实际上是jQuery对象封装后的对象。它没有getContext方法,所以会报错。但jQuery对象可以像访问数组一样,通过中括号来获取对应的DOM对象,所以第二种返回了最原始的Canvas对象,它是具有getContext方法的。
js中event.srcElement和event.target的区别
一、Javascript event.srcElement
event.srcElement可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称。
注意获取的标记都以大写表示,如"TD","TR","A"等。所以把看过的一些抄下来,不记得的时候再来看看。
<scripttype="text/javascript">
functiontdclick(){
if(event.srcElement.tagName.toLowerCase()=='td')
alert("行:"+(event.srcElement.parentNode.rowIndex+1)+"列:"+(event.srcElement.cellIndex+1));
}
</script>event.srcElement从字面上可以看出来有以下关键字:事件,源他的意思就是:当前事件的源,
我们可以调用他的各种属性就像:document.getElementById("")这样的功能,
经常有人问 firefox下的 event.srcElement怎么用,在此详细说明:
IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即:
firefox下的 event.target= IE下的 event.srcElement
解决方法:使用obj(obj= event.srcElement? event.srcElement: event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.
以下是几种常见到的情况(IE下测试通过,如要测试firefox下的event.target可以修改并保存代码后用firefox打开测试):
event.srcElement.X显示一个控件的各种属性
<divid="div_001">
<formid="form_001">
<inputtype="button"id="button_001_id"name="button_001_Name"value="单击查看"class="button_001_Class"onclick="Get_srcElement(this)">
</form>
</div><script>
functionGet_srcElement()
{
varsrcElement=""
srcElement=srcElement+""+"event.srcElement.id:"+event.srcElement.id
srcElement=srcElement+""+"event.srcElement.tagName:"+event.srcElement.tagName
srcElement=srcElement+""+"event.srcElement.type:"+event.srcElement.type
srcElement=srcElement+""+"event.srcElement.value:"+event.srcElement.value
srcElement=srcElement+""+"event.srcElement.name:"+event.srcElement.name
srcElement=srcElement+""+"event.srcElement.className:"+event.srcElement.className
srcElement=srcElement+""+"event.srcElement.parentElement.id:"+event.srcElement.parentElement.id
srcElement=srcElement+""+"event.srcElement.getattribute:"+event.srcElement.getAttribute
alert(srcElement)
}
</script>event.srcElement.selectedIndex一般使用在select对像上:
<selectname="selectname"onchange="alert(event.srcElement.options[event.srcElement.selectedIndex].value)">
<optionvalue="001">1</option>
<optionvalue="002">2</option>
<optionvalue="003">3</option>
<optionvalue="004">4</option>
<optionvalue="005">5</option>
</select>
第一个子标签为
event.srcElement.firstChild最后个一个是
event.srcElement.lastChild
当然也可以用
event.srcElement.children[i]
event.srcElement.ChildNode[i]
至于event.srcElement.parentElement是指在鼠标所在对象的上一个对象.
<divonclick="Get_srcElement()">
<divid="001"style="border:1pxsolidred;width:100%;height:500px"><spanid="node001">这是第1结点div001<span>
<divid="002"style="border:1pxsolidred;width:80%;height:300px"><spanid="node002">这是第2结点div002<span>
<divid="003"style="border:1pxsolidred;width:50%;height:200px"><spanid="node003">这是第3结点div003<span>
</div>
<divid="004"style="border:1pxsolidred;width:50%;height:200px"><spanid="node003">这是第3结点div004<span>
</div>
</div>
</div>
</div>
<script>
functionGet_srcElement()
{
varsrcElement=""
srcElement=srcElement+""+"event.srcElement.children[0].tagName:"+event.srcElement.children[0].tagName
srcElement=srcElement+""+"event.srcElement.firstChild.id:"+event.srcElement.firstChild.id
srcElement=srcElement+""+"event.srcElement.lastChild.id:"+event.srcElement.lastChild.id
alert(srcElement)
}
</script>
<divstyle="border:10pxredsolid">
<inputtype="button"value="父元素标签">
</div>event.srcElement有关问题--
event.srcElement的子标签和父标签:
第一个子标签为
event.srcElement.firstChild
最后个一个是
event.srcElement.lastChild
当然也可以用
event.srcElement.children[i]
event.srcElement.ChildNode[i]
至于event.srcElement.parentElement是指在鼠标所在对象的上一个对象.
<inputtype=buttonvalue=GOtitle="?page=1"
<scriptlanguage="JavaScript">
functionf()
{
alert('index.asp'+event.srcElement.title)
location.href='index.asp'+event.srcElement.title
}
</script>
<atitle="a测试">a测试</a>
<br>
<tableborder=1width="200">
<trtitle="tr测试"><td>tr</td></tr>
</table>
<tableborder=1width="200">
<tr><tdtitle="td测试">td</td></tr>
</table>
<select>
<optionvalue="1">1</option>
<optionvalue="2">2</option>
<optionvalue="3">3</option>
<optionvalue="4">4</option>
<optionvalue="5">5</option>
</select>
关于本次js中parentnode和js parse的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。