我有一些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"); });
非常感谢您的帮助!
答案 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)
答案 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代码。