Mam kilka elementów listy z atrybutem. Chcę wybrać tylko dwa lub trzy z nich naraz. Obecnie jestem split
ing listę oddzielonych przecinkami identyfikatorów następnie tworząc tablicę dla selektorów jQuery powrót:selektor atrybutu jQuery, gdzie wartość zawiera wartość w tablicy
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');
To wydaje się być dość kosztowne podejście do Firefoksa. Czy istnieje sposób na zoptymalizowanie tego, abym mógł wybrać dowolny li z atrybutem id danych zawierającym dowolny identyfikator?
Coś podobnego do poniższego, ale wybierając jedną z wartości?
var ids = $(this).text().split(','); //e.g. text = 1,13,27
$('.container ul.class li[data-id~="' + ids + '"]').addClass('active');
[edytuj]
Dzięki komentarzu @Alnitak „s I zmieniły moje pętle do:
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]+'"]');
}
Ten wydał duża poprawa, ale jest tam jeszcze mogę zrobić?
nie używać 'dla ... in' na tablicach - to na wyliczanie _object keys_ nie _array indices_. – Alnitak
Dzięki. Zmieniłem 'for ... in' dla' for (var i = 0; i