1

要素が存在しない場合、検索されたセレクターの文字列を取得するにはどうすればよいですか?

例えば:

$( 'parent child.class' ).plugin( )

プラグインで文字列を取得したいのですが、"parent child.class"存在$( 'parent child.class' )しません。

jQueryのソースコードを掘り下げていきますが、もっと詳しい知識を持っている人がこれを知っている場合に備えて、尋ねると思いました。

4

2 に答える 2

3

できません。

jQueryオブジェクトには、.selectorプラグイン内で使用できるプロパティがあります(ただし、jQueryとの相互使用を目的としているようです)が、これは大きいですが、すべてのjQueryオブジェクトがセレクター文字列で作成されるわけではありません。この例の使用を考えてみましょう.yourPlugin()

$('div.someClass').add(document.getElementById("test"))
                  .add("<div>Hello</div>")
                  .filter(function() {
                      return $(this).attr("data-test") == "blah";
                  })
                  .parents()
                  .yourPlugin();

.yourPlugin()要素が含まれているかどうかに関係なく、jQueryオブジェクトが最終的に渡される結果となったセレクターについて考えるのは意味がありません。

(プラグインが自分だけで使用され、セレクターで作成されたjQueryオブジェクトのみを渡すことがわかっている場合は、プラグイン内で使用できthis.selectorます...)

于 2012-06-23T15:05:49.023 に答える
2

セレクタープロパティがあります:

$.fn.plugin = function() {
  if (this.length == 0) {
    return this.selector;
  }
};
于 2012-06-23T14:49:28.140 に答える