该行的用途是什么
this.parentNode.firstChild.nodeName
以下代码来自jQuery Highlight插件。
jQuery.fn.removeHighlight = function () {
return this.find("span.highlight ").each(function () {
this.parentNode.firstChild.nodeName;
with(this.parentNode) {
replaceChild(this.firstChild, this);
normalize();
}
}).end();
};
答案 0 :(得分:3)
this.parentNode.firstChild.nodeName
未将其值分配给任何变量。基本上它是一个属性而不是一个函数,所以它不会产生任何影响。看起来毫无意义。它应找出当前节点的parentNode,然后找到该parentNode的firstChild节点,然后获取其nodeName。但在这种情况下,它不会在您提供的代码段中的任何地方使用
答案 1 :(得分:0)
this.parentNode.firstChild.nodeName
这将获取第一个兄弟参考this
的标签名称(如果它是一个元素,请参阅RobG的评论)。
因为它没有被分配,所以很奇怪。如果它被调用副作用(可能是为了修复浏览器错误),则不清楚(应该注释)。
该插件的代码有点奇怪。
答案 2 :(得分:0)
考虑以下因素:
<span class= "highlight">...</span>
<span class= "highlight">...</span>
<span class= "highlight">...</span>
<span class= "highlight">...</span>
....
现在有多个具有相同类名的跨度。 如果您尝试突出显示其中一个跨度,则会触发jquery。
现在要突出显示的范围基于this.parentNode.firstChild.nodeName;
这指的是具有突出显示请求的跨度,剩余的只是跨度内的内部。