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>
....

現在、同じクラス名を持つ複数のスパンがあります。これらのスパンの 1 つを強調表示しようとすると、jquery が起動されます。

これに基づいて強調表示するthis.parentNode.firstChild.nodeName; スパンは、強調表示の要求があるスパンを参照し、残りはスパン内の単なる内部です。

于 2012-07-27T06:38:37.727 に答える