如何获取嵌套跨度HTML元素的文本?

时间:2012-12-24 07:32:24

标签: javascript html

我想从以下HTML代码中的嵌套SPAN元素中获取文本:

<span id='result_box'>
<span class="hps">text_content</span>
</span>

我希望使用JavaScript获取“text_content”值。

我试过这个但有问题:

var resBox=document.getElementById('result_box');
var strTrans=resBox.getElementsByTagName('span')[0].innerHTML;
alert(strTrans);
编辑:其实我想从在线页面这样做 enter image description here enter image description here

4 个答案:

答案 0 :(得分:7)

您的代码运行正常。我猜你的问题是当你没有完全加载DOM时你正在执行这些代码。如果你正在测试某些东西,你可以试试这个。

window.onload = function () {
   //put your code here,it will alert when page loaded completely.
}; 

或将脚本放在span元素之后。像这样。

<span id='result_box'>
  <span class="hps">text_content</span>
</span>
<script type='text/javascript'>
   var resBox=document.getElementById('result_box');
   var strTrans=resBox.getElementsByTagName('span')[0].innerHTML;
   alert(strTrans);// it will alert
</script>

答案 1 :(得分:2)

通过classname .. document.getElementsByClassName()获取元素,然后从结果节点列表中获取第一个项目

window.onload = function () {
   document.getElementsByClassName("hps")[0].innerHTML
};     

jsfiddle

答案 2 :(得分:1)

var resBox=document.getElementById('result_box');
var strTrans=document.getElementsByTagName('span')[0].innerText;
alert(strTrans);​

或更好

strTrans = document.querySelector(".hps").innerText ;

答案 3 :(得分:1)

得到了你,我想你在你的html页面中嵌入了一个链接,然后你想在你嵌入的页面中操纵DOM,对吗?如果是这样,您可以检查浏览器相同的原始政策。

如果你想通过谷歌实现在线翻译,你可以谷歌'谷歌翻译api',谷歌提供api给其他人在他们自己的应用程序中实现在线翻译。

似乎bing也提供了一个api.i我不确定。