Прототип внутренней обертки - PullRequest
3 голосов
/ 21 марта 2012

Я искал документацию и пробовал различные методы, но не нашел подходящего метода для достижения следующих манипуляций с домом:

<h3>hello</h3> 

до

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Насколько мне известно, Prototype не имеет эквивалента wrapInner() в jQuery.Однако вы можете смоделировать его с помощью innerHTML :

$$("h3").each(function(element) {
    element.replace("<h3><a href='#'>" + element.innerHTML + "</a></h3>");
});
1 голос
/ 22 марта 2012

Прототип wrap на самом деле работает с текстовыми узлами, но это не говорит об этом явно, а текстовые узлы не расширяются обычным способом.Также селектор $$ исключает нативные текстовые узлы, поэтому вам нужно выбрать их самостоятельно.

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