1

以下の JS を使用して、既存の一連のカテゴリに基づいて一連のタブを作成しています。これを拡張して、JS 配列の値に基づいて DIV ID 内の特定の ID をターゲットにする必要があります。

        $("#categories div[id^=category]:not(:first)", this).hide();

        var cats = $('#categories div[id^=category]');

        cats.each(function () {
           var anch = $(this).find('h3 a').eq(1).clone();
            anch[0].rel = this.id;
            $('<li/>').append(anch).appendTo('#tabs');
        });

html:

<div id="category_1">
    <h3 class="maintitle">
        <a class="toggle">..</a>
        <a href="#">Cat 1 Title</a>
    </h3>
    <div>
        ...
    </div>
</div>

<div id="category_2">
    <h3 class="maintitle">
        <a class="toggle">..</a>
        <a href="#">Cat 2 Title</a>
    </h3>
    <div>
        ...
    </div>
</div>

以下を追加して、JS 配列を準備しました。

var catsList = '{$cats}'; // comma separated list of numbers generated in PHP - returns 1,4,8 currently.
var catsArray = catsList.split(',');

以下を変換して、catsArray 内の各項目をチェックするにはどうすればよいですか?

var cats = $('#categories div[id^=category]');

何かのようなもの

var cats = $('#categories div[id^=category_'+catsArray+']');

ただし、配列全体ではなく、配列内の各項目を明らかにチェックしています。

4

2 に答える 2

2

おそらく関数が必要です

$.each(catsArray,function(index, item) {
       var cats = $('#categories div[id^=category_'+item+']');
 });

これをどのように使用するかに応じて、for ループもそれを行います。

for (var i = 0; i < catsArray.length; i++) {
   var catIndex = catsArray[i];
   var cats = $('#categories div[id^=category_'+catIndex +']');
}
于 2013-07-03T10:25:23.473 に答える
2

ID はコンテキスト ページで一意である必要があるため、これを使用できます。

var cats = $('#category_'+catsArray.join(',#category_'));

デモ

于 2013-07-03T10:36:07.510 に答える