这条线是什么意思"this.parentNode.firstChild.nodeName”;在jQuery H
What is the line mean? "this.parentNode.firstChild.nodeName" in jQuery Hilghlight plugin
线有什么用
this.parentNode.firstChild.nodeName
在jQueryHighlight插件的以下代码中。
http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
jQuery.fn.removeHighlight = function () {
return this.find("span.highlight ").each(function () {
this.parentNode.firstChild.nodeName;
with(this.parentNode) {
replaceChild(this.firstChild, this);
normalize();
}
}).end();
};
this.parentNode.firstChild.nodeName
未将其值分配给任何变量。基本上,它是一个属性,而不是一个函数,所以它不会产生任何效果。看起来毫无意义。它应该找出当前节点的parentNode,然后找出该parentNode的firstChild节点,然后得到它的nodeName。但在这种情况下,它不会在您提供的
考虑以下情况,例如:
<span class= "highlight">...</span>
<span class= "highlight">...</span>
<span class= "highlight">...</span>
<span class= "highlight">...</span>
....
现在有多个跨度具有相同的类名。如果您试图突出显示其中一个跨度,则会触发jquery。
现在,要突出显示的跨度基于this.parentNode.firstChild.nodeName;
这指的是有突出显示请求的跨度,其余的只是跨度内部的内部构件。
this.parentNode.firstChild.nodeName
这将获得引用this
的第一个同级的标签名称(如果它是一个元素,请参见RobG的注释)。
因为它没有被分配,这很奇怪。如果它被调用是为了产生副作用(也许是为了修复浏览器错误),那就不清楚了(应该对此进行评论)。
这个插件的代码有点奇怪。
相关文章:
- Javascript:firstChild对象返回undefined
- 元素的属性nodeName会自动变为lowerCase
- 查找动态添加的elem.firstChild
- 这条线是什么意思"this.parentNode.firstChild.nodeName”;在jQuery H
- Firstchild/lastchild无法在JavaScript中工作
- jQuery 1.5.1 Sizzle'无法读取属性nodename'child'>'
- 当 IF 语句未注释掉时,nodeName 作为“#text”返回
- javascript firstChild, nextSibling read-only
- g.nodeName is undefined
- Umbraco 将从第 @nodename 页添加链接作为表单上的文本输入值
- bs-tooltip TypeError: 无法读取未定义的属性“nodeName”
- Row.cells[0].firstChild 在 IE 和 FF 中返回不同的值
- htmlNode.childNodes[i].nodeName中 #text 的JavaScript含义
- 使用React时的类型错误:无法读取未定义的属性“firstChild”
- 未捕获的类型错误: $(..)[0].firstChild.wrap 不是一个函数
- Javascript this.firstChild.nextSibling在Internet Explorer中不工作
- 未定义的Highcharts nodeName
- 为什么我得到“;未捕获的类型错误:无法读取属性'nodeName'“为空”;在我的剧本中
- firstChild何时以及如何选择#文本节点
- ckeditor:“;这个.nodeName未定义“;错误(来自ckeditor.js),内联编辑器