在编写动态超文本标记语言时,有经验的web开发人员似乎不喜欢在JavaScript中使用document.write()
。
为什么会这样呢?正确的方法是什么?
发布于 2009-10-07 19:14:57
document.write()
不能与XHTML一起工作。它是在页面加载完成后执行的,除了写出一个HTML字符串之外,什么也做不了。
由于HTML的实际内存表示是DOM,因此更新给定页面的最佳方法是直接操作DOM。
这样做的方法是以编程方式创建节点,然后将它们附加到DOM中的现有位置。对于一个人为设计的示例,假设我有一个维护“ID
”标题属性的div
元素,那么我可以通过这样做来引入一些动态文本:
// create my text
var sHeader = document.createTextNode('Hello world!');
// create an element for the text and append it
var spanHeader = document.createElement('span');
spanHeader.appendChild(sHeader);
// grab a reference to the div header
var divHeader = document.getElementById('header');
// append the new element to the header
divHeader.appendChild(spanHeader);
发布于 2009-10-07 21:03:17
也许在这种情况下使用jQuery是一个好主意。它提供了方便的功能,您可以这样做:
$('div').html('<b>Test</b>');
有关更多信息,请查看http://docs.jquery.com/Attributes/html#val。
发布于 2009-10-07 19:15:13
您可以改为更改页面上元素的innerHTML
或outerHTML
。
https://stackoverflow.com/questions/1533568
复制相似问题