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(',');

我将如何转换以下内容以检查 catArray 中的每个项目?

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 回答