这条线是什么意思"this.parentNode.firstChild.nodeName”;在jQuery H

What is the line mean? "this.parentNode.firstChild.nodeName" in jQuery Hilghlight plugin

本文关键字:nodeName firstChild jQuery parentNode this 是什么 意思 quot      更新时间:2024-03-27

线有什么用

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的注释)。

因为它没有被分配,这很奇怪。如果它被调用是为了产生副作用(也许是为了修复浏览器错误),那就不清楚了(应该对此进行评论)。

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