开发者问题收集

如何根据类名获取 <a> innerText?

2017-11-08
14639

假设我有: <a class="helloh" id="helloh">返回此值</a>

基本上,我想根据类名获取 <a> 标签的 innerText。

问题是当我尝试: alert(document.getElementsByClassName("helloh").innerText); 它返回 undefined 但是当我尝试: alert(document.getElementById("helloh").innerText); 它返回我想要的实际值。

3个回答

使用 document.getElementsByClassName("helloh")[0].innerText 而不是 document.getElementsByClassName("helloh").innerText 。 使用 getElementsByClassName 时,您将获得元素数组,而不是与 getElementById 不同的单个数组。

Prabhu Vinod
2017-11-08

新的语法版本是 document.querySelector() ,它将返回第一个匹配的元素。这样就不必再执行 getElementsByClassName('name')[0]

从以下内容开始:

<a class="helloh" id="helloh">get by ID</a>

<a class="helloh2" id="helloh2">get by Class</a>

您可以使用:

// by ID
console.log(document.querySelector('#helloh').innerText)

// by Class
console.log(document.querySelector('.helloh2').innerText)

如果您想要多个元素,则可以使用 document.querySelectorAll()

<a class="helloh" id="helloh">get by ID</a>

<a class="helloh" id="helloh2">get by Class</a>

// get both by Class
console.log(document.querySelectorAll('.helloh'))

请注意 #.

您使用 . 指定类,使用 # 指定 ID,然后省略两者以按块元素进行搜索。

例如, document.querySelectorAll('div') 将返回页面上的所有 div。

您也可以同时使用多个:

document.querySelectorAll('div .helloh #helloh2')
agm1984
2017-11-08
var a = document.getElementsByClassName("helloh")[0].textContent;
alert(a);
<a class="helloh" id="helloh">return this value</a>
vicky patel
2017-11-08