我的代码中有一个函数,我需要修改页面中的链接,它看起来像这样:
ListView_SetIconSpacing(ListView1.Handle, 348, 480);
我需要在指向某些特定域的表单的所有链接和目标上应用此函数。我们说我有一个像这样的列表:$('a').each(function(){
// code here related to HREF attr
});
$('form').each(function(){
// Code relate to the TARGET attr
});
如何修改选择器的方式只能将其应用于链接并将pionting形成列表中的域?
答案 0 :(得分:1)
您可以使用.filter
:
var $exampleComLinks = $('a').filter(function() {
return this.href.indexOf('https://example.com') == 0
|| this.href.indexOf('https://example2.com') == 0
|| this.href.indexOf('https://example3.com') == 0;
});
或简单的if语句:
$('a').each(function() {
if (this.href.indexOf('https://example.com') == 0
|| this.href.indexOf('https://example2.com') == 0
|| this.href.indexOf('https://example3.com') == 0) {
console.log('do something this $(this)');
}
});
使用@Praveen Kumar的domainList
方法:
var domainsList = ["www.example.com", "www.domain.com", "www.anotherdomain.com"];
$('a').each(function () {
if (domainsList.indexOf($(this).attr("href").replace(/https?:\/\/([^\/]*).*/gi, "$1")) > -1)
// Do it.
});
$('form').each(function () {
// Code relate to the TARGET attr
if (domainsList.indexOf($(this).attr("href").replace(/https?:\/\/([^\/]*).*/gi, "$1")) > -1)
// Do it.
});
答案 1 :(得分:1)
如果目标是网站网址,我建议添加http://或https://然后(其他地方你必须在比较时从attr(“target”)或href删除http://。):
var domains="http://www.example.com,http://www.domain.com,http://www.anotherdomain.com";
$('a').each(function(){
if (domains.indexOf($(this).attr("href")) > -1)
});
$('form').each(function(){
if (domains.indexOf($(this).attr("target")) > -1)
});
答案 2 :(得分:1)
您可以使用new RegExp()
与参与数组列表一起使用分隔符"|"
,RegExp.prototype.test()
var list = ["www.example.com","www.domain.com","www.anotherdomain.com"];
$("a, form").each(function(i, el) {
if (new RegExp(list.join("|")).test(this.href || this.target)) {
// do stuff
}
})
jsfiddle https://jsfiddle.net/xkjpxd6L/