javascript - 如何将节点列表中的 HREF 属性分配给常规数组?

标签 javascript

正如您在下面的代码中看到的那样,downloadLinks变量是 <a> 的节点列表元素,我需要获取 href 属性并将它们分配到 linkContainer 数组中。 for 循环根本不起作用。我做错了什么?

谢谢!

( () => {

    "use strict";

    // Variables holding content to show & hide

    const tab1 = $("#default"),
          tab2 = $("#dim"),
   featureList = $("#default-wac-feature-list"),
 downloadLinks = document.querySelectorAll("#dropdown-download-links > li > a"),
 linkContainer = [];

  for(let i = 0; i < downloadLinks.length - 1; i++) {
      linkContainer[] = downloadLinks[i].href;
  }

  console.log(linkContainer);


}) ();

最佳答案

使用 i < downloadLinks.length而不是 i < downloadLinks.length - 1 ,并将链接分配给索引 - linkContainer[i] (或使用 Array.push )。

const downloadLinks = document.querySelectorAll("#dropdown-download-links > li > a"),
      linkContainer = [];

for (let i = 0; i < downloadLinks.length; i++) {
  linkContainer[i] = downloadLinks[i].href;
}

console.log(linkContainer);
<ul id="dropdown-download-links">
  <li><a href="1">1</a></li>
  <li><a href="2">2</a></li>
  <li><a href="3">3</a></li>
</ul>

一个更简单的选择是使用 Array.from()将 NodeList 直接转换为 href 数组:

const downloadLinks = document.querySelectorAll("#dropdown-download-links > li > a");

const linkContainer = Array.from(downloadLinks, el => el.href);

console.log(linkContainer);
<ul id="dropdown-download-links">
  <li><a href="1">1</a></li>
  <li><a href="2">2</a></li>
  <li><a href="3">3</a></li>
</ul>

关于javascript - 如何将节点列表中的 HREF 属性分配给常规数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460894/

相关文章:

javascript对象方法无法分配ajax调用响应

javascript - 如何设置内部 div 的样式

javascript - 遍历 JS 数组的定义元素

javascript - 将 handlebars 变量传递给客户端 js 文件

javascript - 如何使用 lodash groupBy、sumBy 和 orderBy 并保持数组结构

javascript - 我如何将这段代码放入可重用的函数中?

javascript - jquery fetchJSON 选择正确的对象

java - Spring MVC &lt;input :form> does not allow name attribute to be used. 在使用 javascript document.getElementsByName() 时造成阻碍?

javascript - jsPDF.plugin.from_html 返回 cns.length 未定义

javascript - JS : can a var/object declared as const be deleted