原型内包装

时间:2012-03-21 14:46:21

标签: javascript prototypejs javascript-framework

我搜索了文档并尝试了各种技术,但没有找到合适的技术来实现以下dom操作:

<h3>hello</h3> 

<h3><a href="#">hello</a></h3>

感谢。

2 个答案:

答案 0 :(得分:2)

据我所知,Prototype没有等同于jQuery的wrapInner()。但是,您可以使用innerHTML来模拟它:

$$("h3").each(function(element) {
    element.replace("<h3><a href='#'>" + element.innerHTML + "</a></h3>");
});

答案 1 :(得分:1)

Prototype的wrap确实可以在文本节点上运行,但它并没有明确说明,也没有以通常的方式扩展文本节点。此外,$$选择器会排除本机文本节点,因此您需要自己获取它们。

var h3 = $$('h3').first(),
    text = h3.childNodes.first();
Element.wrap(text, 'a', { href: '#' });