0

我对这段代码感到头疼

$('a').filter(function() {
    // I want to eleminate www.goto.com, www.foto.com
    // and 10-15 additional links
    return this.href.match(??);
}).addClass('highlight');

页面上有大约 50 个链接,我想过滤其中的 10-15 个。我不想写多个if。不是当我使用 jQuery 时。我也无法向链接添加类或 ID,因为标记超出了我的范围。

在这里标记 - http://jsfiddle.net/wQYuz/

我该怎么做?

4

3 回答 3

0

您说您想删除所有具有给定 URL 的链接(即 goto foto),然后突出显示其余部分。所以你可以先删除所有的href,然后突出显示其余的

http://jsfiddle.net/fenderistic/WbYUe/

$('a').filter(function() {
// I want to eleminate www.goto.com, www.foto.com
// and 10 more links
  return this.href.match(/(goto|foto|anyotherstring)/g);
}).remove();

$('a').each(function(){
  $(this).addClass("highlite");
});

或者

您可以执行以下操作,这会删除给定的链接并一次性突出显示其他链接

http://jsfiddle.net/fenderistic/aCZfa/

$('a').each(function() {
  // I want to eleminate www.goto.com, www.foto.com
  // and 10 more links
  if(this.href.match(/(xyz|goto|foto|mymy|abc)/g)){
   this.remove();   
} else { $(this).addClass("highlite"); }
  //return this.href.match(/(goto|foto|anyotherstring)/g);
});
于 2013-11-13T17:57:03.690 回答
0

尝试这个:

var elm = ["http://www.goto.com", "http://www.foto.com"]; //list of unwanted sites
$("a").each(function () {
    var href = $(this).attr("href");
    if (elm.indexOf(href) >= 0) { //compare
        $(this).addClass("highlite");
    }
});

在这里拉小提琴。

于 2013-11-13T17:47:54.403 回答
-1

这将完成这项工作:

$('a').filter(function() {
   // I want to eleminate www.goto.com, www.foto.com
   // and 10 more links
    return this.href.match(/oto|xyz|loop/g);
}).addClass('highlite');

它正在将oto模式与每个链接进行比较,匹配的得到highlited

这是更新的小提琴:http: //jsfiddle.net/wQYuz/5/

于 2013-11-13T17:43:23.320 回答