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

Javascript: How can I join all links (array)

本文关键字:链接 数组 何加入 Javascript      更新时间:2023-12-31

我有类似于的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>
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在这里。

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

帮我查一下。

自己检查一下。

document.getElementsByTagName返回NodeList而不是数组,您需要将节点列表转换为一个数组,或者只在放入hrefs的位置使用一个新数组。。。

引入一个新变量:

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

您需要创建一个单独的数组来保存链接。

类似于:

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

用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>');