我正在使用以下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+']');
但显然要检查数组中的每个项目,而不是正在检查整个数组。
答案 0 :(得分:2)
你可能想要each功能
$.each(catsArray,function(index, item) {
var cats = $('#categories div[id^=category_'+item+']');
});
根据您的使用方式,for loop也会这样做:
for (var i = 0; i < catsArray.length; i++) {
var catIndex = catsArray[i];
var cats = $('#categories div[id^=category_'+catIndex +']');
}
答案 1 :(得分:2)