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

理解对不对?

关于对“.replaceWith()方法返回的jQuery对象引用的是替换前的节点,而不是通过replaceWith/replaceAll方法替换后的节点“这句话的理解:

    举个栗子: a.replaceAll(b) 返回的对象和值均是a,而不是b

                而 a.replaceWith(b) 返回的对象是a ,但值为b的

ps:不知道有木有理解错误>_ <,欢迎大神指正!

提问者:星yee_爷 2017-03-22 19:52

个回答

  • 夜莺z
    2017-03-31 10:31:16
    已采纳

    replaceAll()函数的返回值为jQuery类型,返回表示替换内容的jQuery对象。

    与被替换掉的节点关联的所有数据和事件处理器也将同时被移除。


    replaceWith()函数的返回值为jQuery类型,返回当前jQuery对象本身(虽然其匹配的元素已从文档中被移除)。

    与被替换掉的节点关联的所有数据和事件处理器也将同时被移除。



  • 夜莺z
    2017-03-31 10:36:36

    .replaceWith()方法  

    (original)原始jQuery对象被返回。该对象指向已经从 DOM 中被移除的对象,而不是指向已经取代了它的新元素。

    所以:

    a.replaceAll(b) 返回值是对象,是a

    而 a.replaceWith(b) 返回值是对象,是a


  • qq_Walkinginthe_2
    2017-03-22 21:24:54

    a.replaceAll(b) 返回的值均是a,而b是对象。replace()函数和replaceAll()函数的区别就是目标和源的位置相反。而且replaceAll()函数可以替换每一个目标元素,简而言之就是替换每一个它的参数对象对应的DOM。