在JavaScript中从文本对象获取文本值
我有一个HTML文件,其中包含以下行:在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
<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>