线的意思是什么? jQuery Hilghlight插件中的“this.parentNode.firstChild.nodeName”

时间:2012-07-27 06:28:43

标签: javascript jquery html jquery-plugins highlight

该行的用途是什么

this.parentNode.firstChild.nodeName

以下代码来自jQuery Highlight插件。

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();
};

3 个答案:

答案 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; 这指的是具有突出显示请求的跨度,剩余的只是跨度内的内部。