我喜欢HTML:
<div id="divid">
<a href="d#link1">1</a>
<a href="d#link2">2</a>
<a href="d#link3">3</a>
.....................
</div>
我使用下面的脚本加入,但无法加入。检查我。
var links = document.getElementById('divid').getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
links[i] = links[i].href;
}
document.write('<div class="' + links.join(" ") + '">Class is added links</div>');
这意味着在加入后我有HTML:
<div class="d#link1 d#link2 d#link3">Class is added links</div>
答案 0 :(得分:2)
var as = document.getElementById('divid').getElementsByTagName('a');
var links = [];
for (var i = 0; i < as.length; i++) {
links[i] = as[i].href;
}
// work with links here
console.log('<div class="' + links.join(" ") + '">Class is added links</div>');
请注意,这会导致问题,因为相对于当前域,链接已完全解析。您可能希望使用另一个属性来包含类。
答案 1 :(得分:1)
检查我。
亲自检查。
document.getElementsByTagName返回NodeList而不是数组,您需要 将节点列表转换为数组或只使用放入hrefs的新数组...
答案 2 :(得分:1)
引入一个新变量:
var links = document.getElementById('divid').getElementsByTagName('a'),
hrefs = [];
for (var i = 0; i < links.length; i++) {
hrefs[i] = links[i].href;
}
document.write('<div class="' + hrefs.join(" ") + '">Class is added links</div>');
答案 3 :(得分:1)
您需要创建一个单独的数组来保存链接。
类似的东西:
var links = document.getElementsByTagName('a');
var linkarr = new Array();
for (var i = 0; i < links.length; i++) {
linkarr[i] = links[i].href;
}
document.write('<div class="' + linkarr.join(" ") + '">Class is added links</div>');
答案 4 :(得分:0)
尝试使用jquery:
var links = $('#divid').children('a');
var linkArr = '';
for (var i = 0; i < links.length; i++) {
linksArr += links[i].attr('href') + ' ';
}
document.write('<div class="' + linksArr + '">Class is added links</div>');