-1

我尝试careerPoints使用 JavaScript 选择类,但是当我输入 querySelectorAll 时,我得到“未定义”。此外,当我输入 querySelector 时,我只能得到循环中的第一个元素。

这是我的代码:

<body>
  <h1>Hi</h1>

  {%for x in range(0, 16)%}
    <ul>
      <li scope="row"><p>Name:</p> {{dataName[x]['firstName']}} {{dataName[x]['lastName']}}</li>
      <li class="points"><p>Career Points</p><p class="careerPoints">{{dataName[x]['careerPoints']}}</p> </li>
      <li class="numbers"><img width="100px" src="{{dataName[x]['headShotUrl']}}" alt="{{dataName[x]['firstName']}} {{dataName[x]['lastName']}}"></li>
      <li class="numbers"><p>Height</p> {{dataName[x]['height']}}</li>
    </ul>
  {%endfor%}

  <script>
    var elements = document.querySelectorAll("careerPoints").text;
    console.log(elements);
   </script>
 </body>
4

1 回答 1

0

应该是querySelectorAll(".careerPoints")

querySelectorAll使用 CSS 选择器。在这种情况下.选择类。#例如,将选择 id。

另一个问题是这个(为方便起见,我添加了.)。

var elements = document.querySelectorAll(".careerPoints").text;

querySelectorAll返回一个节点列表,因此您不能只从中选择文本,因为节点列表上没有文本属性(注意:根本没有text属性)。您需要遍历节点列表,然后从每个元素中选择textContent(或innerText行为稍有不同)。forEach这是一个用于将文本记录到控制台的小示例。

const elements = document.querySelectorAll(".careerPoints");
elements.forEach(element => console.log(element.textContent));
于 2021-10-29T06:21:52.513 回答