2009-10-29 20 views
15

我有一个HTML文件,其中包含以下行:获取文本的值从文本对象在JavaScript

<div><img src="img1.gif"><br>My Text</div> 

我想选择的那句“我的文字”使用JavaScript这样我就可以改变它。我能够使用lastChild获取包含文本的对象,但无法弄清楚如何获取文本本身的值。

回答

21
<div id="test"><img src="img1.gif"><br>My Text</div> 

function getText(obj) { 
    return obj.textContent ? obj.textContent : obj.innerText; 
} 

function setText(obj, to) { 
    obj.textContent? obj.textContent = to : obj.innerText = to; 
} 

getText(document.getElementById('test')) // 'My Text' 
setText(document.getElementById('test').lastChild, 'bar') 

注:的innerText是IE DOM,的textContent对于DOM兼容的API的其余部分如Mozillas。

+0

冷静的人感谢 – Ralph 2009-10-29 21:23:30

+0

我忘了指定'lastChild',我只是说现在。 – 2009-10-29 21:24:55

+0

@meder不要认为你的战术downvoting其他人的答案已被忽视。 – 2009-10-29 21:30:48

2

,如果你有

<div><img src="img1.gif"><br><span>My Text</span></div> 

那么你可以做

lastChild.innerHTML得到值 ,你也可以做

lastChild.innerHTML="new text" 
-1

试试这个

.InnerText 
0
var x = the object you got 
var theOldText = x.innerText 
x.innerText = "new text" 
0

我的建议是将您想要更改的值放入您可以识别的自己的元素中。然后你可以使用jQuery的简单的一行:

<div><img src="img1.gif"><br><div id='myText'>My Text</div></div> 

$('#myText').text('new text'); 
0

您可以通过“data”属性访问[object Text]的文本内容。 该属性是R/W,以便您可以使用它来读取文本以及编写它。

<div><img id="my_img_1" src="img1.gif">My Text</div> 
<script> 
    alert('my current text = ' + lastChild.data); 
    lastChild.data = 'new text'; 
</script> 

你可以找到更多here