搜索字词与其余代码分开?

问题描述 投票:0回答:2
$("[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'};
javascript jquery
2个回答
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
投票

您不能通过使用多个元素的数组来创建单个jQuery选择。相反,您需要使用具有不同查询的每个元素迭代数组。

所以你可以使用for循环,$.map$.eachArray.prototype.forEachArray.prototype.every ......等等

© www.soinside.com 2019 - 2024. All rights reserved.