我尝试用JavaScript选择careerPoints
类,但是当我键入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>
应该是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));