0

线有什么用

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

3 回答 3

3

this.parentNode.firstChild.nodeName没有将其值分配给任何变量。基本上它是一个属性而不是一个函数,所以它不会产生任何影响。看起来毫无意义。它应该找出当前节点的 parentNode,然后是该 parentNode 的 firstChild 节点,然后获取它的 nodeName。但在这种情况下,它不会在您提供的代码片段中的任何地方使用

于 2012-07-27T06:37:57.213 回答
0
this.parentNode.firstChild.nodeName

这将获取引用的第一个兄弟的标签名称(如果它是一个元素,请参阅RobG的评论)this

因为它没有被分配,所以很奇怪。如果它被称为副作用(可能是为了修复浏览器错误),则不清楚(应该注释掉)。

那个插件的代码有点奇怪。

于 2012-07-27T06:37:28.803 回答
0

考虑以下例如:

<span class= "highlight">...</span>
<span class= "highlight">...</span>
<span class= "highlight">...</span>
<span class= "highlight">...</span>
....

现在有多个具有相同类名的跨度。如果您尝试突出显示其中一个跨度,则会触发 jquery。

现在要突出显示的跨度是基于this.parentNode.firstChild.nodeName; this 是指具有突出显示请求的跨度,其余只是跨度内的内部结构。

于 2012-07-27T06:38:37.727 回答