什么是append();和prepend();限制?

时间:2016-09-11 12:09:31

标签: jquery

$("a").contents().each(function(){
        this.nodeValue = $.trim($(this).text()).replace("[Hello]","");
        $(this).prepend("Pre").append("End");
});

我想要从[Hello]每个a剪切prepend(),但同时我希望append()replace()函数能够正常工作。事实上,nodeType函数完美运行,但其他两个函数失败。我在控制台中没有错误。

请注意,$(this) 3text,因此它是append()类型。

为什么prepend()和{{1}}无效?

1 个答案:

答案 0 :(得分:1)

jQuery.prepend

  

.prepend()方法将指定的内容作为每个元素的第一个子元素

但textNodes没有子节点,因此您无法追加元素添加到其中。

但您可以使用jQuery.beforejQuery.after在textNode之前和之后插入内容:

$("a").contents().each(function() {
  this.nodeValue = $.trim($(this).text()).replace("[Hello]", "");
  $(this).before("Pre").after("End");
});

但是你需要注意,因为<a>some text</a> some text可能由多个文本节点组成,通常不应该是这种情况,但你应该奖励它。