我认为用jQuery进行简单的选择可以更改段落上的某些文本。它完善了传统方式,即
document.getElementById('message_text').innerHTML = "hello";
但是使用jQuery却没有。我检查了$('#message_text')
的值,当然我看到了这些项目。
$('#message_text').innerHTML = "hello";
我做错了吗?
有人有什么想法吗?
答案 0 :(得分:20)
当你执行$('#message_text')
之类的东西时,你所拥有的东西不是常规的DOM对象,而是jQuery包装集(即使在这种情况下它只是一个元素。)如果你想访问一个特殊的DOM属性,你可以这样做:
$('#message_text')[0].innerHTML = 'whatever';
$('#message_text').get(0).innerHTML = 'whatever';
但是,在这种情况下,这不是必需的,因为jQuery有两个功能可以执行您想要的操作:
$('#message_text').html('whatever');
$('#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节点。