Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取一个元素';没有id的s值_Javascript_Html - Fatal编程技术网

Javascript 获取一个元素';没有id的s值

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

我有以下HTML:

<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
     }
}