我有一堆带有属性的列表项。我想一次只选择其中的两个或三个。目前我正在split
使用逗号分隔的 id 列表,然后为 jQuery 创建一个选择器数组以返回:
var ids = $(this).text().split(','); //e.g. text = 1,13,27
var selectors = [];
for (var index in ids)
{
selectors.push('.container ul.class li[data-id="'+ids[index]+'"]');
}
$(selectors.join(',')).addClass('active');
对于 Firefox,这似乎是一种相当昂贵的方法。有没有办法优化这个,所以我可以选择任何 li 具有包含任何 id 的 data-id 属性?
类似于以下内容,但选择任何值?
var ids = $(this).text().split(','); //e.g. text = 1,13,27
$('.container ul.class li[data-id~="' + ids + '"]').addClass('active');
[编辑]
感谢@Alnitak的评论,我已将循环更改为:
var ids= $(this).text().split(',');
var length = ids.length;
for (var i=0; i<length;i++)
{
selectors.push('.container ul.class li[data-id="'+ids[i]+'"]');
}
这带来了很大的进步,但我还能做些什么吗?