【发布时间】:2011-09-01 06:37:48
【问题描述】:
假设我有一个这样的列表:
<ul id='dom_a'>
<li>foo</li>
</ul>
我知道如何在 ul 标签中插入元素:
Element.insert('dom_a', {bottom:"<li>bar</li>"});
由于我收到的字符串包含 dom id,我需要插入 inner HTML 而不是整个元素。我需要一个函数来做到这一点:
insert_content('dom_a', {bottom:"<ul id='dom_a'><li>bar</li></ul>"});
并获得:
<ul id='dom_a'>
<li>foo</li>
<li>bar</li>
</ul>
我应该如何使用 Prototype 做到这一点?
这是我想出的解决方案,有人可以改进吗?
Zena.insert_inner = function(dom, position, content) {
dom = $(dom);
position = position.toLowerCase();
content = Object.toHTML(content);
var elem = new Element('div');
elem.innerHTML = content; // strip scripts ?
elem = elem.down();
var insertions = {};
$A(elem.childElements()).each(function(e) {
insertions[position] = e;
dom.insert(insertions);
});
}
【问题讨论】:
-
一篇关于如何在 Zena 中使用这个东西的小博文:zenadmin.org/en/blog/post819.html
标签: javascript dom prototypejs