这一课中我发现文中所举的例子中,有的用了单引号,有的用了双引号,我将其全部都改成了双引号,照理说应该没问题的,可是实际测试例子却没反应了,故只能改回原来的有的单引号,有的双引号的情况,求一个合理的解释,为什么JQ中必须要这么干?是这个引入的老版本JQ库有问题嘛?
<script type="text/javascript">
//只克隆节点
//不克隆事件
$(".bt1").on('click', function() {
//找到内容为第二段的p元素
//通过replaceWith删除并替换这个节点 注意:通过replaceWith()方法替换节点之后返回的是没替换之前的节点
var a=$(".right > div:first p:eq(1)").replaceWith('<a style="color:red">replaceWith替换第二段的内容</a>');
alert(a.html());
})
</script>
<script type="text/javascript">
//找到内容为第六段的p元素
//通过replaceAll删除并替换这个节点 注意:通过replaceAll()方法替换节点之后返回的是替换之后的节点
$(".bt2").on('click', function() {
var b=$('<a style="color:red">replaceAll替换第六段的内容</a>').replaceAll('.right > div:last p:last');
alert(b.html());
})
</script>
简单的说:单引号和双引号混合使用是为了避免引用混淆。举个例子:楼上所说的replaceWith('<a style="color:red">replaceWith替换第二段的内容</a>')这一部分,显然单引号包括'<a style="color:red">replaceWith替换第二段的内容</a>',双引号包括"color:red"。如果全使用单引号或双引号则无法区分。当然亦可以换成replaceWith("<a style='color:red'>replaceWith替换第二段的内容</a>")效果是相同的。(个人理解)
$(".right > div:first p:eq(1)").replaceWith('<a style="color:red">replaceWith替换第二段的内容</a>')
那这行代码来说,你吧 $(".right > div:first p:eq(1)")这里面的双引号改成单引号作用肯定是一样的,
你吧replaceWith('<a style="color:red">replaceWith替换第二段的内容</a>')这里面单引号全部改成双引号,会变成"<a style=" 和 ">replaceWith替换第二段的内容</a>" ,肯定不对啊
我尝试了将选择器前后以及插入内容前后的引号全部改成单引号,居然就都可以正常运行了,可是全部双引号的话却不行,这是为什么呢?