Javascript 获取一个元素';没有id的s值
我有以下HTML:Javascript 获取一个元素';没有id的s值,javascript,html,Javascript,Html,我有以下HTML: <span class="testClass1" > <a href="testlink.com">wanted Text</a> <a class="ctx" href="#"></a> </span> 我也尝试过使用document.getElementsByTagName(),但我不知道如何正确使用它们。试试这个: var testClass1 = document.getElements
<span class="testClass1" >
<a href="testlink.com">wanted Text</a>
<a class="ctx" href="#"></a>
</span>
我也尝试过使用document.getElementsByTagName()
,但我不知道如何正确使用它们。试试这个:
var testClass1 = document.getElementsByClassName("testClass1");
console.log(testClass1[0].innerHTML);
document.getElementsByClassName("testClass1")[0].getElementsByTagName('a')[0].innerText
您可以使用querySelectorAll 因此:
document.querySelectorAll('.testclass1 a')
将返回所有
该函数返回匹配元素的数组,因此如果需要访问它们,可以使用循环:
// Get each of the elements that have the class "testClass1"
var elements = document.getElementsByClassName("testClass1");
// Iterate through each element that was found
for(var e = 0; e < elements.length; e++){
// Get the inner content via the innerHTML property
var content = elements[e].innerHTML;
}
您还可以使用诸如comment或comment之类的方法,利用
querySelectorAll()
函数作为getElementsByClassName()
和getElementsByTagName()函数当访问多个元素而不是一个特定元素时,可以更好地使用
。getElementsByClassName
创建一个数组。document.querySelector(“.textclas1>a:first child”).textContent
document.getElementsByClassName将不适用于IE 8。改为使用document.querySelectorAll。document.querySelectorAll('span.testClass1 a')[0]。innerHTML
-即您需要元素的innerHTML,该元素作为指定类的span的子元素存在。由于querySelectorAll
返回一个数组,我们还说我们需要该数组中的第一个元素。谢谢你的斜视,它工作得很好。.childNodes[0]
将不起作用,因为在大多数浏览器中,第一个节点将是textNode,这是给定问题的最佳答案。谁对答案投了反对票?“如果你投反对票,至少给出一个理由?”斯奎特说,在大量的评论充斥着这个答案之后,我意识到了这一点。你应该考虑张贴你的评论解决方案,因为这显然是要走的路。我很乐意投赞成票。我误解了OPs的初衷(即他们不知道如何正确地使用GetElementsByCassName()
)来达到这种目的)。在我看来,@squint只是做了正常的一轮拖拉,但没有多大的成效。@AdambuchanTransmisth:答案是错误的。你问我投票的理由,所以我给了一个,现在你叫我巨魔。难以置信。downvoter可以解释答案的错误吗?您没有任何DownVote,但您没有针对特定的a
元素和所需的内容。我有一个。。而不是再次投赞成票,然后再次投反对票。。然后再次投票。。。我正在编辑答案以涵盖特定的a
元素,感谢您的快速回答,但现在我得到了“我只想要链接的名称(“想要的文本”)
// Get each of the elements that have the class "testClass1"
var elements = document.getElementsByClassName("testClass1");
// Iterate through each element that was found
for(var e = 0; e < elements.length; e++){
// Get the inner content via the innerHTML property
var content = elements[e].innerHTML;
}
// Get each of the elements that have the class "testClass1"
var elements = document.getElementsByClassName("testClass1");
// Iterate through each element that was found
for(var e = 0; e < elements.length; e++){
// Find the <a> elements below this element
var aElements = elements[e].getElementsByTagName('a');
// Iterate through them
for(var a = 0; a < aElements.length; a++){
// Access your element content through aElements[a].innerHTML here
}
}