更改p的innerhtml的jquery无法正常工作

时间:2009-06-01 18:01:59

标签: javascript jquery

我认为用jQuery进行简单的选择可以更改段落上的某些文本。它完善了传统方式,即

document.getElementById('message_text').innerHTML = "hello";

但是使用jQuery却没有。我检查了$('#message_text')的值,当然我看到了这些项目。

$('#message_text').innerHTML = "hello";

我做错了吗?

有人有什么想法吗?

3 个答案:

答案 0 :(得分:20)

当你执行$('#message_text')之类的东西时,你所拥有的东西不是常规的DOM对象,而是jQuery包装集(即使在这种情况下它只是一个元素。)如果你想访问一个特殊的DOM属性,你可以这样做:

$('#message_text')[0].innerHTML = 'whatever';
$('#message_text').get(0).innerHTML = 'whatever';

但是,在这种情况下,这不是必需的,因为jQuery有两个功能可以执行您想要的操作:

html()

$('#message_text').html('whatever');

text()

$('#message_text').text('whatever');

两者之间的区别在于html()将允许HTML,而text()将转义您传递给它的任何HTML标记。使用你需要的那个而不是用innerHTML手动操作HTML。

答案 1 :(得分:6)

jQuery函数$()没有返回像getElementById()这样的 HTMLElement 对象,只返回 jQuery 对象。而且你只有html()方法等同于innerHTML。所以:

$('#message_text').html('hello');

答案 2 :(得分:5)

$('#message_text').html('hello')

jQuery选择器返回一个数组,而不是DOM Element节点。