我在一个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>在一个网页上,我会喜欢一个js函数或脚本,将写在url href动态
所以如果我在一个页面上,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>发布于 2011-09-28 02:30:04
首先,以数字开头的in无效-请将其更改为前面有一个字母:)
除此之外,这将完成以下工作:
for (var i = 0; i < links.length; i++) {
var link = links[i];
$('#' + link.id).attr('href', link.link);
}编辑
此外,正如John Hartsock上面提到的,确保使用标准的双引号将属性值括起来,而不是原始代码中显示的卷曲的双引号。
发布于 2011-09-28 02:34:00
如果你不想使用jQuery,下面是你的方法:
for (var i = 0; i < links.length; i++) {
var link = links[i];
document.getElementById(link.id).setAttribute('href', link.link);
}发布于 2011-09-28 02:41:05
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
https://stackoverflow.com/questions/7573925
复制相似问题