jQuery - 无法使用'each'将类添加到超链接

时间:2012-07-28 20:34:13

标签: javascript jquery hyperlink each

我有一些Javascript可以找到包含“google”的页面中的所有超链接,并将网址的开头更改为另一个网址。

我正在尝试向这个受影响的链接添加一个类,但是我在JS控制台中遇到了很多“未定义”的错误。我试过警告($(this).innerHTML)),它显示了超链接的内容 - clases和诸如此类的东西。但由于某种原因,我不能上课。我也尝试过使用this.className + =“socks”。 这也会导致未定义的错误。我想我错过了一些简单的东西!

还有一种在搜索中使用正则表达式的方法,我对Javascript很新。

这是我的代码:

$("a[href*='google']").each(function(){ 
      this.href = this.href.replace('http://www.google.co.uk','http://www.ask.com');
      this.href = this.href.replace('http://www.google.com','http://www.ask.com');
      $(this).addClass("socks");
  });

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

$("a[href*='google']").each(function(){ 

    var href = $(this).attr('href');
    href.replace('http://www.google.co.uk','http://www.ask.com');
    href.replace('http://www.google.com','http://www.ask.com');
    $(this).attr('href', href);
    $(this).addClass("socks");
});

而不是使用this.href。我想你的代码没有到达addClass部分......

此外,使用firebug(在firefox的情况下)或chrome开发工具(在chrome的情况下)进行调试。您可以简单地设置断点,添加手表等......

(在这种情况下,请确保使用所谓的非缩小版jQuery以便于调试)

答案 1 :(得分:2)

我可以看到此代码没有错误:

http://jsfiddle.net/p7Sgj/

看到这一点。

答案 2 :(得分:2)

如果您的HTML代码是

<a href="http://www.google.co.uk">Hello</a>
<a href="http://www.google.com">World</a>

你的CSS是

.socks {
    color:#f00;
}

然后你的代码应该正常工作。

http://jsfiddle.net/k93TZ/2/ 在这里工作。

它可能是你的html或css代码。