【发布时间】:2010-11-13 04:36:28
【问题描述】:
我正在尝试在页面上的所有<object> 中添加 html 的 sn-p。我知道我可以通过标签名称访问元素并且我可以更改元素,但我可以简单地附加到它吗?
另外,我想将它添加到每个标签的内容中,而不是文档的末尾。这些方法中的哪一种会起作用?
【问题讨论】:
标签: javascript dom innerhtml
我正在尝试在页面上的所有<object> 中添加 html 的 sn-p。我知道我可以通过标签名称访问元素并且我可以更改元素,但我可以简单地附加到它吗?
另外,我想将它添加到每个标签的内容中,而不是文档的末尾。这些方法中的哪一种会起作用?
【问题讨论】:
标签: javascript dom innerhtml
假设没有库...
var elementToAppend = document.createElement(tagName); // Your tag name here
// Set attributes and properties on elementToAppend here with
// elementToAppend.attribute = value (eg elementToAppend.id = "some_id")
// You can then append child text and elements with DOM methods
// (createElement or createTextNode with appendChild)
// or with innerHTML (elementToAppend.innerHTML = "some html string")
var objects = document.getElementsByTagName('object');
for(var i = 0; i < objects.length; i++) {
elementToAppend = elementToAppend.cloneNode(true);
objects[i].appendChild(elementToAppend);
}
使用innerHTML 或outerHTML 作为其他答案的建议可能会导致您嵌入<object> 的任何问题。
【讨论】:
appendChild()。也很好,你展示了cloneNode()。我早期的尝试假设您可以多次附加同一个子节点,但结果并不那么成功。
appendChild 构建它:var elementToAppend = document.createElement('span'); var bold = document.createElement('b'); var text = document.createTextNode('stuff'); bold.appendChild(text); elementToAppend.appendChild(bold);
appendChild 是你要找的。p>
【讨论】: