问答详情
源自:5-2 DOM替换replaceWith()和replaceAll()

JQ中单双引号的问题:什么时候用双引号,什么时候用单引号?

这一课中我发现文中所举的例子中,有的用了单引号,有的用了双引号,我将其全部都改成了双引号,照理说应该没问题的,可是实际测试例子却没反应了,故只能改回原来的有的单引号,有的双引号的情况,求一个合理的解释,为什么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>


提问者:风飘叶摇 2017-11-23 00:55

个回答

  • muke_Lat
    2018-03-02 18:43:41

    简单的说:单引号和双引号混合使用是为了避免引用混淆。举个例子:楼上所说的replaceWith('<a style="color:red">replaceWith替换第二段的内容</a>')这一部分,显然单引号包括'<a style="color:red">replaceWith替换第二段的内容</a>',双引号包括"color:red"。如果全使用单引号或双引号则无法区分。当然亦可以换成replaceWith("<a style='color:red'>replaceWith替换第二段的内容</a>")效果是相同的。(个人理解)

  • 一笑而过Weber
    2017-12-02 12:08:04

        $(".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>" ,肯定不对啊

  • 风飘叶摇
    2017-11-23 00:59:58

    我尝试了将选择器前后以及插入内容前后的引号全部改成单引号,居然就都可以正常运行了,可是全部双引号的话却不行,这是为什么呢?