$("a").contents().each(function(){
this.nodeValue = $.trim($(this).text()).replace("[Hello]","");
$(this).prepend("Pre").append("End");
});
我想要从[Hello]
每个a
剪切prepend()
,但同时我希望append()
和replace()
函数能够正常工作。事实上,nodeType
函数完美运行,但其他两个函数失败。我在控制台中没有错误。
请注意,$(this)
3
为text
,因此它是append()
类型。
为什么prepend()
和{{1}}无效?
答案 0 :(得分:1)
.prepend()方法将指定的内容作为每个元素的第一个子元素
但textNodes没有子节点,因此您无法将或追加元素添加到其中。
但您可以使用jQuery.before和jQuery.after在textNode之前和之后插入内容:
$("a").contents().each(function() {
this.nodeValue = $.trim($(this).text()).replace("[Hello]", "");
$(this).before("Pre").after("End");
});
但是你需要注意,因为<a>some text</a>
some text
可能由多个文本节点组成,通常不应该是这种情况,但你应该奖励它。