Javascript:如何加入所有链接(数组)

时间:2013-11-30 03:30:50

标签: javascript html

我喜欢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>

5 个答案:

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

JSfiddle here

请注意,这会导致问题,因为相对于当前域,链接已完全解析。您可能希望使用另一个属性来包含类。

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