使用 jquery 更改许多 a 链接中的 href
我正在尝试更改从谷歌搜索返回的网址,因为有时谷歌喜欢打电话回家了解我的浏览习惯(叹息这曾经是雅虎的邪恶)。 :SI 从看似有效的 jquery 中收到错误,想知道修复方法是什么?
错误代码是(很神秘,因为我使用的是 chrome v8): TypeError:无法调用未定义的“split”方法
这是来源:
$("a[href^='http://www.google.com/url'], a[href^='www.google.com/url'], a[href^='/url?'], a[href^='url?']").each(
function(a) {
var url = "";
$(a).attr("href").split("&").each(function (part) {
if (part.match(/^url\=/)) {
url = unescape( (part.split("=",2))[1] );
}
});
$(a).attr("href", url);
});
我已经验证我收到的错误是在第一个分割上,而不是在部分上范围。
I'm trying to change urls I get back from google search, because sometimes google likes to phone home about my browsing habbits (sigh that used to be yahoo's evil). :S I am getting an error from what seems to be valid jquery, was wondering what the fix is?
The error code is (cryptic, because I'm in chrome v8):TypeError: Cannot call method 'split' of undefined
Here's the source:
$("a[href^='http://www.google.com/url'], a[href^='www.google.com/url'], a[href^='/url?'], a[href^='url?']").each(
function(a) {
var url = "";
$(a).attr("href").split("&").each(function (part) {
if (part.match(/^url\=/)) {
url = unescape( (part.split("=",2))[1] );
}
});
$(a).attr("href", url);
});
I've verified that the error I am getting is on the first split, not the one on the part parameter.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您使用的回调函数的第一个参数实际上是用于
each()
的数组的索引。试试这个:The first argument of the callback function you're using is actually the index of the array used for the
each()
. Try this instead:each
回调的第一个参数(您的a
)是一个索引,而不是元素。您应该将回调传递给
attr
,而不是each
:The first parameter to the
each
callback (youra
) is an index, not the element.Instead of
each
, you should pass a callback toattr
: