-2

以前質問したのですが、わかりにくすぎることに気づきました。基本的に、次のように動作するセレクターを作成する方法を考え出す必要があります。

この '' コンテナー内の各要素について、その要素にリンゴまたはバナナまたはクランベリーまたはドラゴンフルーツのクラスがあるかどうかを検索します。そうであれば、この「.style」クラスをその要素に追加します。

ねじれは、私がチェックしているすべてのクラスが動的であることです。セレクターで検索するさまざまなクラスを柔軟に挿入する方法が必要です。

For example:
Let's say I have one selector that reads:
For each element in '<div>', does element have banana OR dragonfruit.

But another selector would be different:
For each element in '<div>', does element have cranberry.

基本的に、検索対象を変更するだけでなく、検索リストの長さも変更する動的セレクターが必要です。フィルターが 1 つだけ必要な検索もあれば、複数のフィルターが必要な検索もあります。

TLDR: 書き方はありますか:

$(.divContainer).hasClass(x or y or z or w or....) ここで、x、y、z、w.... は、動的に生成される異なるクラス名です。これどうやってするの?!x、y、zの代わりに関数呼び出しを使用することを考えていました....基本的に.hasClass引数内で関数を使用します

4

3 に答える 3

0

次のような JavaScript 関数を定義できます。

function hasAnyClasses(possibleClasses) {

    var container = $('.divContainer');

    $(possibleClasses).each(function(idx, el) {
        if (container.hasClass(el)) {
            return true;
        }
    });

    return false;
}

次に、動的に生成できる可能なクラスの配列で呼び出します。

if (hasAnyClasses(['x', 'y', 'z'])) {
    // has either class 'x' or class 'y' or class 'z'
}
于 2013-07-19T05:04:34.710 に答える
0

例については、 http://jsfiddle.net/FEz3F/を参照してください。Jquery セレクターは、選択する複数の要素をコンマで区切って受け入れることができます。

上記の jquery コード:

$(document).ready(function()
{
    var targetDiv = $('.container');
    searchElement(targetDiv, '.class1, .class2');           
    function searchElement(div, className)
    {
        $(div).find(className).each(function()
        {
            // ...
        });
    }                   
});
于 2013-07-19T05:11:26.197 に答える
0

このような関数を定義し、

function checkSelector(selectionList){
      $(selectionList).each(function(index, sel) {
                      if (container.hasClass(sel)) {
                            return sel;
                 }

}

次に、switch を使用してコードを評価し、適用します。

switch (checkSelector(['apple', 'banana'])) {
         case ('apple'):
                 //Code for apple class
                        break;
         case ('banana'):
                 //code for banana     
                        break;

         default:
               break;
}
于 2013-07-19T05:14:18.493 に答える