在JavaScript中从文本对象获取文本值

在JavaScript中从文本对象获取文本值,javascript,Javascript,我有一个HTML文件,其中包含以下行: <div><img src="img1.gif"><br>My Text</div> 我的文本 我正在尝试使用JavaScript选择短语“我的文本”,以便可以更改它。我可以通过使用lastChild获取包含文本的对象,但不知道如何获取文本本身的值。如果有 <div><img src="img1.gif"><br><span>My Text</span

我有一个HTML文件,其中包含以下行:

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

我的文本
我正在尝试使用JavaScript选择短语“我的文本”,以便可以更改它。我可以通过使用lastChild获取包含文本的对象,但不知道如何获取文本本身的值。

如果有

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

.InnerText

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

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

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

我的文本 $('#myText').text('newtext');

我的文字 函数getText(obj){ 返回obj.textContent?obj.textContent:obj.innerText; } 函数setText(对象,到){ obj.textContent?obj.textContent=to:obj.innerText=to; } getText(document.getElementById('test'))/“我的文本” setText(document.getElementById('test')。lastChild,'bar'))

注意:innerText用于IE DOM,textContent用于其他兼容的DOM API,如Mozillas。

您可以通过“数据”属性访问[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>
我的文本
警报(“我的当前文本=”+lastChild.data);
lastChild.data='新文本';

你可以找到更多信息,我忘了指定
lastChild
,我只是现在添加了它。@meder不要认为你对其他人答案的策略性否决没有被注意到。@Chris Ballance-你的答案是MS特有的,在现代浏览器中不起作用。斯科特的也一样。这个问题不包括jQuery标记,也不能在文本节点上设置ID,这就是为什么我否决了这些问题。@Corey-我没有在IE中测试这个问题,但如果它不起作用,请告诉我。@meder“我的答案更好”是战术否决的一个站不住脚的借口,但至少你承认了这一点。
<div><img src="img1.gif"><br><div id='myText'>My Text</div></div>

$('#myText').text('new text');
<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' )
<div><img id="my_img_1" src="img1.gif">My Text</div>
<script>
    alert('my current text = ' + lastChild.data);
    lastChild.data = 'new text';
</script>