如何获取div文本值?

时间:2013-11-12 14:02:35

标签: javascript html

我有以下html:

<div class="question">
    <div class="text">
          Blah Blah
    </div>
</div>

我正在尝试使用javascript获取“Blah Blah”的值。

那样的东西?

    alert(document.getElementsByName("question")[0].value);

10 个答案:

答案 0 :(得分:5)

document.getElementsByClassName('question')[0].innerText;

document.querySelector('.question').innerText;

答案 1 :(得分:3)

你可以这样做

alert(document.getElementsByClassName("question")[0].children[0].innerHTML);

答案 2 :(得分:2)

此处无需依赖jQuery,请使用innerText

document.querySelectorAll('div.question')[0].innerText

答案 3 :(得分:2)

您需要先正确选择元素。它不会(也不能)具有name属性,因此getElementsByName是错误的。您可以使用getElementsByClassName或(有限支持)新的querySelector

var div = document.querySelector('.question');

然后你需要得到它的“价值”。它不是表单控件,因此它没有value属性。它有childNodes,你关心的是另一个div。

var childDiv = div.querySelector('.text');

如果您正在使用querySelector并且只使用后代组合器,则可以跳过这两个阶段:

var childDiv = document.querySelector('.question .text');

这个子div然后有另一个子节点,但它是一个文本节点而不是一个元素节点。你可以这样得到它:

var textNode = div.firstChild;

最后,您可以使用data属性在textNode中获取文本。

var text = textNode.data;

如果你把它们放在一起:

alert(document.querySelector('.question .text').firstChild.data);

这样:http://jsfiddle.net/LR93S/

答案 4 :(得分:1)

 $('.question').text(); // jquery

 document.getElementsByClassName("question")[0].innerText; // javascript

答案 5 :(得分:1)

试试这个:document.getElementsByClassName("text")[0].innerHTMLhttp://jsfiddle.net/hv9Dx/15/

答案 6 :(得分:1)

最简单的方法是使用jquery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
var divvalue = $('.text').html()
alert (divvalue);

您也可以更改您的html以使用ID

<div class="question">
<div id="text">
      Blah Blah
</div>
</div>

并使用:

document.getElementById("text").innerHTML;

示例:http://jsfiddle.net/DanBrown180/N9Z8Z/

答案 7 :(得分:1)

document.querySelectorAll('.text')[0].innerHTML

答案 8 :(得分:0)

对于以下示例:

<div class="question" id="question">
    <div class="text" id="text">
      Blah Blah
    </div>
</div>

您可以尝试获取其内部div标签的值,如下所示:

alert(document.getElementById('question').childNodes[1].innerHTML);

干杯!

答案 9 :(得分:0)

使用标准DOM属性textContent,与innerText不同,该属性受到广泛支持和标准化:

document.getElementsByClassName("question")[0].textContent;

如果您需要支持IE&lt; = 8,那么您有两个问题:支持document.getElementsByClassName()textContent

对于第一个问题,使用其他DOM方法(example)编写/查找按类名检索元素的函数并不太难。

对于第二种情况,您可以使用IE的innerText属性,该属性大致(but not precisely)与textContent相同。