【发布时间】:2012-04-06 02:36:16
【问题描述】:
我搜索了文档并尝试了各种技术,但没有找到合适的技术来实现以下 dom 操作:
<h3>hello</h3>
到
<h3><a href="#">hello</a></h3>
谢谢。
【问题讨论】:
标签: javascript prototypejs javascript-framework
我搜索了文档并尝试了各种技术,但没有找到合适的技术来实现以下 dom 操作:
<h3>hello</h3>
到
<h3><a href="#">hello</a></h3>
谢谢。
【问题讨论】:
标签: javascript prototypejs javascript-framework
据我所知,Prototype 不等同于 jQuery 的 wrapInner()。但是,您可以使用innerHTML 模拟它:
$$("h3").each(function(element) {
element.replace("<h3><a href='#'>" + element.innerHTML + "</a></h3>");
});
【讨论】:
Prototype 的wrap 确实适用于文本节点,但并没有说清楚,文本节点也没有以通常的方式扩展。此外,$$ 选择器不包括原生文本节点,因此您需要自己获取它们。
var h3 = $$('h3').first(),
text = h3.childNodes.first();
Element.wrap(text, 'a', { href: '#' });
【讨论】: