2016-07-16 3 views
0
$("[title*='A-title-im-not-interested-in']").closest("div.parentdivofproduct").attr("style","visibility: hidden !important; display: none !important;"); 
$("[title*='Second-title-no-need']").closest("div.parentdivofproduct").attr("style","visibility: hidden !important; display: none !important;"); 
$("[title*='Third-i-dont-want-to-see']").closest("div.parentdivofproduct").attr("style","visibility: hidden !important; display: none !important;"); 
$("[title*='4thtitle']").closest("div.parentdivofproduct").attr("style","visibility: hidden !important; display: none !important;"); 

Я использую приведенный выше код, чтобы скрыть названия, которые я не хочу. Каждый из них находится в отдельной строке, причем все вещи повторяют то, что нужно делать, когда есть совпадение. Есть ли способ достичь того же результата, когда я мог бы перечислить свои заголовки в одном месте и сохранить код для чего-нибудь? Что-то вроде этого?Условия поиска, отделенные от остальной части кода?

$("[title*=MYTITLES]").closest("div.parentdivofproduct").attr("style","visibility: hidden !important; display: none !important;"); 
MYTITLES {'A-title-im-not-interested-in','Second-title-no-need','Third-i-dont-want-to-see','4thtitle'}; 
+0

Не могли бы вы поделиться HTML код легко отлаживать? –

ответ

1

Может попробовать что-то вроде

var titles = ['title 1', 'title 2', 'title 3']; 

$("[title]").filter(function(){ 
    return titles.indexOf(this.title) >-1; 
}).closest("div.parentdivofproduct").attr("style","visibility: hidden !important; display: none !important;"); 

Или

$.each(titles, function(_, title){ 
    $('[title="' + title + '"]').closest("div.parentdivofproduct").attr... 
}) 

Или

var selector = titles.map(function(title){ 
    return '[title="' + title + '"]'; 
}).join() 
$(selector).closest("div.parentdivofproduct").attr... 
+0

Yess, отлично работает! Большое спасибо! – JaSon

+0

Лучше добавить класс вместо этого, если вам нужно отменить это. Задайте эти свойства css в правиле класса – charlietfl

0

Вы не можете создать единый выбор JQuery с помощью массива из нескольких элементов , Вместо этого вам нужно итерировать массив, используя каждый элемент с другим запросом.

Таким образом, вы могли бы использовать что-нибудь из для цикла, $.map, $.each, Array.prototype.forEach или Array.prototype.every ... и т.д.

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