我有以下html:
<div class="question">
<div class="text">
Blah Blah
</div>
</div>
我正在尝试使用 javascript 获取值“Blah Blah”。
那么像什么?
alert(document.getElementsByName("question")[0].value);
我有以下html:
<div class="question">
<div class="text">
Blah Blah
</div>
</div>
我正在尝试使用 javascript 获取值“Blah Blah”。
那么像什么?
alert(document.getElementsByName("question")[0].value);
document.getElementsByClassName('question')[0].innerText;
或者
document.querySelector('.question').innerText;
你可以这样做
alert(document.getElementsByClassName("question")[0].children[0].innerHTML);
您需要先正确选择元素。它没有(也不能)有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/
这里不需要依赖jQuery,使用innerText
document.querySelectorAll('div.question')[0].innerText
$('.question').text(); // jquery
document.getElementsByClassName("question")[0].innerText; // javascript
试试这个:document.getElementsByClassName("text")[0].innerHTML
(http://jsfiddle.net/hv9Dx/15/)
document.querySelectorAll('.text')[0].innerHTML
最简单的方法是使用 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/
使用得到广泛支持和标准化的标准 DOM 属性textContent
,不像innerText
:
document.getElementsByClassName("question")[0].textContent;
如果你需要支持 IE <= 8 那么你有两个问题:既不支持document.getElementsByClassName()
也不textContent
支持。
对于第一个问题,编写/查找使用其他 DOM 方法(示例)按类名检索元素的函数并不难。
其次,您可以使用IE 的innerText
属性,它与.textContent
对于以下示例:
<div class="question" id="question">
<div class="text" id="text">
Blah Blah
</div>
</div>
您可以尝试获取其内部 div 标签的值,如下所示:
alert(document.getElementById('question').childNodes[1].innerHTML);
干杯!