1. ホーム
  2. jquery

[解決済み] jQueryで複数のセレクタを連鎖させる?

2022-03-06 18:10:32

質問

通常、クラスをセレクタとして使用する場合、ページ全体を検索するのではなく、クラスが存在する領域のみを検索するように、セレクタに "id"を使用しようとします。

しかし、私はその中にコードを含む部分的なビューを持っています。この部分ビュー(共通のコード)は、formタグに巻き付けられます。

持っています。

<form id="Create">
// load common code in from partial view
</form>

<form id="Edit">
// load common code in from partial view
</form>

さて、この共通コードでは、複数のフィールドにプラグインをアタッチする必要があるので、次のようにします。

$('#Create .myClass').plugin({ options here});

$('#Edit .myClass').plugin({options here});

つまり、ほとんど同じコードなんです。どちらかのidを探すようにする方法はないのでしょうか?

編集

セレクタに変数を指定すると、問題が発生します。

    my.selectors = 
    {
        A: '#Create',
        B: '#Edit',
        Plugin: ' .Plugin' 
    };

 $(selector.A+ selectors.Plugin, selector.B+ selectors.Plugin)

実行されないようです。

解決方法は?

複数のセレクタをコンマで結合することができます。

$('#Create .myClass,#Edit .myClass').plugin({options here});

あるいは、たくさんあるのなら、すべてのフォーム要素にクラスを追加して、そのクラス内を検索することもできます。 これだと、検索を制限することで得られるはずの高速化は得られませんが、私だったら正直あまり気にしません。 ブラウザは、一般的な操作を最適化するために、あなたの背後でたくさんの派手なことをやっています。