2010-10-20 42 views
8

Tiêu đề sẽ làm cho vấn đề của tôi được mô tả tốt. Đã có mã của tôi.Nút JavascriptValue trả lại giá trị rỗng

<div id="adiv"><text>Some text</text></div>  
<script type="text/javascript"> 
function vb(){ 
alert(document.getElementById("adiv").firstChild.nodeValue); //returns null 
} 
</script> 
<input type="button" onclick="vb();" value="get"/> 

có vấn đề gì ..?

Trả lời

14

Để có được [sáp nhập] nội dung văn bản của một nút phần tử:

function vb(){ 
var textnode = document.getElementById("adiv").firstChild; 
alert(textnode.textContent || textnode.innerText); 
} 

để có được nội dung văn bản của một nút văn bản:

function vb(){ 
alert(document.getElementById("adiv").firstChild.firstChild.nodeValue); 
} 
+1

Thanks..actual double firstchild là kinda lạ. –

+0

không lạ ... firstChild là và firstChild của chính là văn bản. – Stumpy7

+0

textContent hoạt động tốt nhất cho tôi: D Cảm ơn! :) –

10

Bạn đang thiếu một firstChild:

alert(document.getElementById("adiv").firstChild.firstChild.nodeValue); 

(Tôi biết điều đó nghe có vẻ lạ, nhưng đây là cách các nút văn bản làm việc)

+3

Có rất lạ, nhưng cảm ơn! ;) – musefan

+0

Không hoạt động trong IE 9,8 – Alex

+0

@ user1473206 bạn có một jsfiddle hoặc tương tự để kiểm tra điều này? –

-2

<text> nút không được hỗ trợ trong IE 7.

Các vấn đề liên quan