0

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

我正在尝试向这个受影响的链接添加一个类,但是我在 JS 控制台中收到了很多“未定义”错误。我试过 alert($(this).innerHTML)) ,它显示了超链接的内容 - 类和诸如此类的东西。但由于某种原因,我不能附加一个类。我也尝试过使用 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");
  });

非常感谢您的帮助!

4

3 回答 3

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 以便于调试)

于 2012-07-28T20:43:25.593 回答
2

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

http://jsfiddle.net/p7Sgj/

看到这个。

于 2012-07-28T20:44:49.633 回答
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 代码。

于 2012-07-28T20:46:14.157 回答