我需要检查是否有任何<li>
的ID与1001,1002,1003,
循环中arrayList
输出的字符串for()
中给出的任何ID相匹配
var wishArray = $.parseJSON($.cookie('wishlist_cookie'));
var arrayList = '';
var li = $('ul li');
var str = li.attr('id');
for (i = 0; i < wishArray['itemlist'].length; i++) {
arrayList += wishArray['itemlist'][i].wishlist_item_id + ",";
console.log(arrayList);
}
然后将addClass添加到所有<li>
,其中ID等于1001,1002,1003,
中的任何一个
if (arrayList.indexOf(str) != -1) {
if($('ul li').attr('id', idvalue)){
$(this).addClass('found');
}
}
如何检查所有<li>
ID,然后将.addClass('found')
应用于与<li>
输出的ID匹配的所有arrayList
?
答案 0 :(得分:1)
变量li已经包含id并在变量str中再次使用,您可以删除它:
var li = $('ul li')//.attr('id');
var str = li.attr('id');
答案 1 :(得分:1)
为什么不是这样的呢?
这里我们构造一个jQuery CSS选择器,它将每个li与列出的id之一匹配 然后让jQuery完成剩下的工作。
var lisSelector = wishArray['itemlist'].map(function (item) {
return 'li[id="' + item.wishlist_item_id + '"]';
}).join(',');
$(lisSelector).addClass('found');
请注意,如果您不关心元素是否为<li>
,则可以使用'#' + item.wishlist_item_id
生成一个选择器。
答案 2 :(得分:0)
您真正需要做的就是从数组中创建一个选择器。
$('#' + wishArray['itemlist'].join(', #') ).addClass('found');
// would create
//$('#0001, #0002, #003').addClass('found');