2016-10-09 77 views
0

我试图隐藏某个网站产品列表页面上的一些独特链接。 这些链接的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结尾(并隐藏所有)?

+0

你期望'(“https://www.example.com/products/details/”)+(hrefs)'做什么? – Amit

+0

@Amit我想用链接指向的那条线创建完整的URL。这就是我设法隐藏该产品的方式。没有完整的href,它找不到任何东西。 – JaSon

+0

@JaSon我认为你的问题有类似的答案。看看这个http://stackoverflow.com/questions/4758103/last-segment-of-url – ZombieChowder

回答

1

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

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

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

这个作品太棒了!非常感谢!! (还需要将我的第4行中的“fullhref”更改为“hrefs” - >'return hrefs.indexOf') – JaSon

1

你现在有什么会产生一个字符串:

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

创建一个新的阵列,它结合了基本URL和数字阵列。

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(); 
+0

为什么你用'indexOf'而不是'==='? – pwolaq

+0

@pwolaq如果它在href中有一个散列或查询字符串呢? – charlietfl

+0

那么它应该是'this.href.indexOf(fullhref)' – pwolaq

相关问题