原谅任何无知,但我是一个普通的jQuery用户,并且必须在prototype.js网站上添加一些代码。我已经检查了文档,但我仍然不知道如何简单地将每个h3元素包装在带有span标记的侧栏中。
我尝试了两个选项,但都不起作用......
$$('.ipsLayout_right h3').wrap(span);
和
$$(".ipsLayout_right h3").each(function(element) {
element.replace("<h3><span>" + element.innerHTML + "</span></h3>");
});
有人可以帮忙搞定这个吗?
由于
答案 0 :(得分:3)
PrototypeJS没有jQuery的基于集合的方法。它最接近的是invoke
function,它允许您“调用”Enumeration
中所有元素的方法:
$$('.ipsLayout_right h3').invoke("wrap", "span");
Live Example - 但请参阅下面的说明
附注:将h3
包裹在span
中无效。 span
的内容模型是措辞内容(与段落中的文字一样),但h3
只能在流内容的地方使用(如整个段落是预期的。
如果你想包装h3
的内容,允许这些内容很可能是文本节点而不是元素,那么我很确定你必须做更多的工作:
$$('.ipsLayout_right h3').each(function(h3) {
var span = new Element('span');
while (h3.firstChild) {
span.appendChild(h3.firstChild);
}
h3.appendChild(span);
});