使用组合字符串+数组检查所有匹配项

时间:2016-10-09 19:18:26

标签: javascript jquery arrays

我试图隐藏网站产品详情页面中的一些独特链接。 这些链接' href属性结尾在我的" hrefs"中设置。阵列。 我只想包括结尾(而不是整个url-s),因为它们之前的部分总是相同的。

我想在网站上隐藏的链接(在本例中)是:

https://www.example.com/products/details/4123
https://www.example.com/products/details/4124
https://www.example.com/products/details/4130

我的脚本是下一个,问题是它只隐藏第一个匹配(https://www.example.com/products/details/4123)。

var hrefs = [ "4123", "4124", "4130", ];
var fullhref = ("https://www.example.com/products/details/") + (hrefs);
    $("[href]").filter(function(){
        return fullhref.indexOf(this.href) >-1;
    }).parent().hide();

因此它可以组合url的第一部分和数组中的最后一部分并删除该链接,但只删除第一部分。 我需要一些帮助,代码如何检查所有给定的url结尾(并隐藏所有内容)?

2 个答案:

答案 0 :(得分:1)

你现在拥有的东西会产生一个字符串:

"https://www.example.com/products/details/4123,4124,4130"

创建一个结合了基本网址和数字数组的新数组。

var fullhref =  hrefs.map(function(ref){
    return "https://www.example.com/products/details/" + ref
})

$("[href]").filter(function(){
    return fullhref.indexOf(this.href) >-1;
}).parent().hide();

答案 1 :(得分:1)

您可以使用循环修改数组,然后使用它来过滤选择。

var hrefs = [ "4123", "4124", "4130", ];

for(var i = 0; i< hrefs.length; i++){
hrefs[i] = "https://www.example.com/products/details/" + hrefs[i];
}