prototype.js用span包装每个h3标签

时间:2014-08-05 09:33:11

标签: javascript jquery prototypejs

原谅任何无知,但我是一个普通的jQuery用户,并且必须在prototype.js网站上添加一些代码。我已经检查了文档,但我仍然不知道如何简单地将每个h3元素包装在带有span标记的侧栏中。

我尝试了两个选项,但都不起作用......

$$('.ipsLayout_right h3').wrap(span);

$$(".ipsLayout_right h3").each(function(element) {
    element.replace("<h3><span>" + element.innerHTML + "</span></h3>");
});

有人可以帮忙搞定这个吗?

由于

1 个答案:

答案 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);
});

Live Example