如何使用JavaScript获取HTML中中包含的段落元素的值

如何使用JavaScript获取HTML中中包含的段落元素的值,javascript,html,dom,Javascript,Html,Dom,我知道这可能是非常基本的,但我在使用JavaScript方面非常差 以下是我的HTML代码: <div class="request"> <h4>Request a Free Consultation</h4> <p>XXX-XXX-XXXX</p> </div> 谁能把我引向正确的方向 编辑:以下是尝试上述代码的fiddle链接: GetElementsByCassName和getElementsByTagNa

我知道这可能是非常基本的,但我在使用JavaScript方面非常差

以下是我的HTML代码:

<div class="request">
<h4>Request a Free Consultation</h4>
<p>XXX-XXX-XXXX</p>     
</div>
谁能把我引向正确的方向

编辑:以下是尝试上述代码的fiddle链接:

GetElementsByCassName和getElementsByTagName返回数组。因此,您还需要添加索引:

var x = document.getElementsByClassName("request");
var pText = x[0].getElementsByTagName("P")[0].innerHTML;
              ^                            ^
alert(pText);
getElementsByClassName和getElementsByTagName返回数组。因此,您还需要添加索引:

var x = document.getElementsByClassName("request");
var pText = x[0].getElementsByTagName("P")[0].innerHTML;
              ^                            ^
alert(pText);
上面的行返回NodeList。它就像一个数组,可以使用索引检索其元素。getElementsByTagName也返回相同的值

for(var i = 0; i < x.length; i++)
  alert(x[i].getElementByTagsName('p')[0].innerHTML); // [0] to get <p>
上面的行返回NodeList。它就像一个数组,可以使用索引检索其元素。getElementsByTagName也返回相同的值

for(var i = 0; i < x.length; i++)
  alert(x[i].getElementByTagsName('p')[0].innerHTML); // [0] to get <p>
您可以简单地使用querySelectorAll

您可以简单地使用querySelectorAll


它给出了未捕获的TypeError:无法读取的属性'innerHTML'undefined@YuDroid您使用的是jQuery,我没有看到任何使用innerHTMLYour代码的代码是错误的。您不能执行x[i][0]来获取第一个节点@AmitJoki即使使用[1]也无法获取p节点。x只包含具有类名请求的元素的节点列表,没有任何类。您仍然需要为p搜索getElementsByTagNameNode@antyrat啊!对不知道我脑子里在想什么,我把它解释成数组的数组!!感谢againit给出了未捕获的TypeError:无法读取的属性'innerHTML'undefined@YuDroid您使用的是jQuery,我没有看到任何使用innerHTMLYour代码的代码是错误的。您不能执行x[i][0]来获取第一个节点@AmitJoki即使使用[1]也无法获取p节点。x只包含具有类名请求的元素的节点列表,没有任何类。您仍然需要为p搜索getElementsByTagNameNode@antyrat啊!对不知道我脑子里在想什么,我把它解释成数组的数组!!再次感谢您的代码很好。唯一需要记住的是GetElementsByCassName和getElementsByTagName返回一个节点数组。迭代它们,或者在您的情况下,因为您只有一个级别,所以只需添加一个[0]。x[0].getElementsByTagNameP[0].innerHTML.YuDroid,您正在JSFIDLE中的链接示例中使用jQuery。。。这是一个相当古老的版本。您想使用jQuery编写代码吗?您的代码很好。唯一需要记住的是GetElementsByCassName和getElementsByTagName返回一个节点数组。迭代它们,或者在您的情况下,因为您只有一个级别,所以只需添加一个[0]。x[0].getElementsByTagNameP[0].innerHTML.YuDroid,您正在JSFIDLE中的链接示例中使用jQuery。。。这是一个相当古老的版本。您希望代码使用jQuery吗?或者如果您正在访问第一个返回的元素,则只需使用querySelector。根据问题中的DOM示例判断,询问者可能需要处理多个元素。我会的,纯粹是关于他的例子中的JavaScript代码,但我们中的任何一方都可能是对的,这当然不值得争论,所以我不再多说了-或者,如果仍然要访问第一个返回的元素,则只需查询选择器。根据问题中的DOM示例判断,询问者可能需要处理多个元素。我会的,纯粹是关于他的例子中的JavaScript代码,但我们中的任何一方都可能是对的,这当然不值得争论,所以我不再多说了-
var pText = document.querySelectorAll('.request p')[0];