2015-10-08 3 views
1

Я пытаюсь отфильтровать массив с помощью grep для применения CSS. Мой код выглядит следующим образом.

var depos = $('.panel-default > .panel-heading'); 
var chkd = ['ABC','XYZ']; 
var found_p = $.grep(depos, function(v) { 
    return jQuery.inArray(v.innerText,chkd); 
}); 

Первый вопрос заключается в том, что found_p не фильтрации необходимых значений массива из chkd. После его фильтрации, как я могу применить CSS? Я пробовал, как показано ниже, но он не работает

$(found_p[0]).css('background-color', 'red'); 

Может ли кто-нибудь помочь мне с этим.

ответ

0

Предполагая, что из вашего кода вы пытаетесь найти элементы, имеющие innerText, соответствующие значению в массиве chkd, вы можете использовать метод filter(). Попробуйте это:

var $depos = $('.panel-default > .panel-heading'); 
var chkd = ['ABC','XYZ']; 
var $found_p = $depos.filter(function() { 
    return $.inArray($(this).text(), chkd) != -1; 
}); 

Переменная $found_p будет держать объект JQuery со всех элементов. Вы можете применить CSS к ним так:

$found_p.css('background-color', 'red'); 

Example fiddle

Однако, я предложил бы использовать классы CSS вместо добавления встроенных стилей, как это намного лучше практика.

Смежные вопросы