<script type="text/javascript">
$(".bt1").on('click', function() {
//找到内容为第二段的p元素
//通过replaceWith删除并替换这个节点
$(".right > div:first p:eq(1)").replaceWith('<a>replaceWith替换第二段的内容</a><br />').appendTo($("body"));
})
</script>
<script type="text/javascript">
//找到内容为第六段的p元素
//通过replaceAll删除并替换这个节点
$(".bt2").on('click', function() {
($('<a style="color:red">replaceAll替换第六段的内容</a><br />').replaceAll('.right > div:last p:last')).appendTo($("body"));
})
</script>我发现 .replaceWith返回的是替换前的节点,也就是原来的节点,.replaceAll返回的是替换后的节点,就是用来替换的节点。上面的代码点击bt1,原来的节点会被移动到最后,点击bt2,替换后的节点会显示在最后,原来节点所在的位置被删除了。
这两个返回值确实是不一样
var result=$(".right > div:first p:eq(1)").replaceWith('<a>replaceWith替换第二段的内容</a>')
alert(result.get(0).tagName)//返回 p
var result=$('<a>replaceAll替换第六段的内容</a>').replaceAll('.right > div:last p:last');
alert(result.get(0).tagName)//返回 a返回的都是要被删除的节点的吧!
返回都是被删除的节点
我不太明白你说什么,但你要注意(".right > div:first p:eq(1)")里面的p:eq(1)的意思,同理也要注意p:last。