2

たとえば、簡単なセレクターを実行しました。

$('div').eq(0).selector;// returns     "div.slice(0,1)"
$($('div').eq(0).selector);// would not work... 

eq(0)そこになかった場合は、スライスはありませんが、適切に使用できるセレクターがあるため、機能します。

私の問題は、を使用すること.selectorはあまり役に立たないのだろうか、そして私は他のフィルターなどを試したことがないということです...

$('div').children().selector// returns "div.children()"

私はjQuery1.7.1を使用し.selectorていますが、機能しないものが返されるときに、これが何に使用されるのか実際にはわかりません。

プラグインを作成しようとしてい.selectorましたが、将来(オンザフライで)要素を追加するためにを使用することを考えました。

アップデート

$.fn.myplugin(function (){
  $(this.selector)//select future elements...
})

または、これに対する別のアプローチはありますか?

4

3 に答える 3

0

プラグインを作成する場合、通常行うことは、要素のリストを更新するために使用されるセレクターを備えたオプションを提供することです。このオプションはエンドユーザーに公開することもできるため、カスタマイズすることができます。

$('div').myPlugin({
    elements: 'ul > li'
});

イベントをバインドするために将来の要素を検出する必要がある場合は、.on()を使用してイベント委任を使用します。

簡単に言うと、実際にはコンテナでイベントハンドラを定義します。イベントはコンテナにバブルアップし、最初にイベントを受信した要素が指定されたセレクターと一致する場合に実行されます。

<div id="container">
    <span>Some text</span>
    <button>Click me</button>
</div>

$('#container').on('click', 'button', function() { ... });

これにより、要素に1つのハンドラーがバインドされ、要素がクリック#containerされた場合にイベントハンドラーが実行されますが、後でDOMに追加された要素に対しても実行されます。<button><button>

于 2012-08-17T09:03:17.883 に答える
0

セレクター式を使用する

$('div:eq(0)').selector; // returns 'div:eq(0)'

詳細はこちら

于 2012-08-17T09:05:28.213 に答える
0

DOMの変更をリッスンする必要があります。そのためには、この回答を参照してください。

また

を使用して、一致したルート要素への変更をn秒ごとに確認できますsetInterval

于 2012-08-17T09:10:56.840 に答える