大家好,我想在没有“Site_dont_go”链接的情况下设置所有链接的href
我被问到并得到答案
这是答案
$("a").click(function() {
var x = $(this).attr("href");
var Site_dont_go = ["test.com", "youtube.com"];
var validUrl = true;
$.each(Site_dont_go, function(i, item) {
if (x.indexOf(item) != -1) {
validUrl = false;
}
});
if (!validUrl) {
window.open('goto.php?url=' + x);
return false;
}
});
编辑: **我的问题是:答案仅在有人点击链接时才有效,我想将其设置为链接的href **
谢谢,我很抱歉
答案 0 :(得分:1)
看起来您需要使用click事件以外的其他内容来触发该功能。 each()
方法在加载时运行。
$("a").each(function () { // <---------------- each!
var x = $(this).attr("href");
var Site_dont_go = ["test.com", "youtube.com"];
...
});
不要忘记在html之后放置脚本或将其包装在document.ready
中。
答案 1 :(得分:0)
您应该迭代所有标记并更改href属性。这应该在文件就绪时完成。没有经过测试的代码,但应该做的诀窍
$( document ).ready(function() {
$("a").each(function(index) {
var x = $(this).attr("href");
var Site_dont_go = ["test.com", "youtube.com"];
var validUrl = true;
$.each(Site_dont_go, function(i, item) {
if (x.indexOf(item) != -1) {
validUrl = false;
}
});
if (!validUrl) {
$(this).attr("href",'goto.php?url=' + x);
}
});