问答详情
源自:3-4 DOM外部插入insertAfter()与insertBefore()

before和insertBefore有什么区别?

这不是一样吗?为什么要这两个?一般用哪个用的多?

 $('a').before($('b'));  a的前面是

b $('a').insertBefore($('b')); a插入到b的前面

提问者:大苗子 2017-04-11 15:41

个回答

  • 随风半水
    2017-04-11 16:01:30
    已采纳

    .before()和.insertBefore()实现同样的功能。主要的区别是语法——内容和目标的位置。 对于before()选择表达式在函数前面,内容作为参数,而.insertBefore()刚好相反,内容在方法前面,它将被放在参数里元素的前面

    .after()和.insertAfter() 实现同样的功能。主要的不同是语法——特别是(插入)内容和目标的位置。 对于after()选择表达式在函数的前面,参数是将要插入的内容。对于 .insertAfter(), 刚好相反,内容在方法前面,它将被放在参数里元素的后面

    before、after与insertBefore。insertAfter的除了目标与位置的不同外,后面的不支持多参数处理

    $("#bt1").on('click', function() {

            //在test1元素前后插入集合中每个匹配的元素

            //不支持多参数

            $('<p style="color:red">测试insertBefore方法增加</p>', '<p style="color:red">多参数</p>').insertBefore($(".test1"))

        }) 

  • 随风半水
    2017-04-11 16:08:11

    后者应该可以防止空指针异常