动态链接超链接

时间:2011-09-27 18:26:08

标签: javascript jquery

我在json文件中有一些链接

<code>
"links": [
            {"link": "http://www.google.com/",
             "id": "1"
            },
            {"link": "http://www.poogle.com/",
             "id": "2"
            },
            {"link": "http://www.foogle.com/ ",
             "id": "3"
            },

]
</code>

在网页上,我会想要一个动态写入url href的js函数或脚本

因此,如果我在页面上并且href是

 <a href  id=”1”> </a>

它应该能够在google.com中写入ahref。

这也是最好的方法,我应该使用Id吗?或其他什么?

您的见解会很有帮助

已更新

JSON FILE:

{"links": 

[
            {"link": "google.com",
             "id": "1"
            },
            {"link": "yahoo.com",
             "id": "2"
            },
            {"link": "msn.com",
             "id": "3"
            },
            {"link": "mash.com",
             "id": "4"
            },
            {"link": "facebook.com",
             "id": "5"
            }
        ]

}

JS

for (var i = 0; i < linksObj.links.length; i++) {
    var linkObj = linksObj.links[i];
    var elem = document.getElementById(linkObj.id);

    if (elem) {
       elem.href = linkObj.link;
       elem.innerHTML = linkObj.link;
    }
}

HTML

<a id='1'></a><br>
<a id='2'></a>

3 个答案:

答案 0 :(得分:2)

首先,以数字开头的ID无效 - 将它们更改为前面有一个字母:)

除此之外,这样做:

for (var i = 0; i < links.length; i++) {
  var link = links[i];
  $('#' + link.id).attr('href', link.link);
}

修改

另外,正如John Hartsock上面提到的那样,请确保使用标准双引号来包围您的属性值,而不是原始代码中显示的卷曲值。

答案 1 :(得分:1)

如果您不想使用jQuery,可以使用以下方法:

for (var i = 0; i < links.length; i++) {
  var link = links[i];
  document.getElementById(link.id).setAttribute('href', link.link);
}

答案 2 :(得分:0)

var linksObj = {"links": [
            {"link": "http://www.google.com/",
             "id": "1"
            },
            {"link": "http://www.poogle.com/",
             "id": "2"
            },
            {"link": "http://www.foogle.com/ ",
             "id": "3"
            },

]};

for (var i = 0; i < linksObj.links.length; i++) {
    var linkObj = linksObj.links[i];
    var elem = document.getElementById(linkObj.id);

    if (elem) {
       elem.href = linkObj.link;
       elem.innerHTML = linkObj.link;
    }
}

Example