设置所有链接的{href} <a> in page javascript without some links</a>

时间:2015-01-31 15:30:37

标签: javascript jquery html

大家好,我想在没有“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 **

谢谢,我很抱歉

2 个答案:

答案 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);
        }
});