如下代码,关于Jquery appendTo()函数的问题,麻烦帮忙看看~

看书看到的。
代码1:var $options = $('#select1 option:selected');
var $remove = $options.remove();
$remove.appendTo('#select2');

代码2: var $options = $('#select1 option:selected');
$options .appendTo('#select2');
这两段代码为什么等效?我看appendTo文档,也没说自带删除啊?!

梵蒂冈之花
浏览 167回答 3
3回答

DIEA

没太理解你说的自带删除的意思!从你的这个例子来看,这两段代码确实等效。 原理:代码1中,首先返回了一个选中的option对象,然后将该对象remove()操作,这时它返回了一个jQuery对象并存入$remove对象中,最后将$remove对象内嵌进#select2中。这里的$remove==$options代码2中,直接将选中的option对象,追加到了#select2中。大概你所谓的自带删除,是指#select1中的option项没有了的意思吧。这其实属于元素的移动。值得注意的一点是:使用remove()方法,返回的jQuery对象,与原始对象的区别在于,它们只保留了元素本身,其他的比如绑定的事件,附加的数据等都会被移除。

收到一只叮咚

append或者appendTo的意思是移动DOM,而不是复制DOM  原理:代码1中,首先返回了一个选中的option对象,然后将该对象remove()操作,这时它返回了一个jQuery对象并存入$remove对象中,最后将$remove对象内嵌进#select2中。这里的$remove==$options代码2中,直接将选中的option对象,追加到了#select2中。大概你所谓的自带删除,是指#select1中的option项没有了的意思吧。这其实属于元素的移动。值得注意的一点是:使用remove()方法,返回的jQuery对象,与原始对象的区别在于,它们只保留了元素本身,其他的比如绑定的事件,附加的数据等都会被移除。  先移除DOM,再把移除的DOM移动到某处,  和代码2,直接移动DOM到某处,是一回事

qq_笑_17

append或者appendTo的意思是移动DOM,而不是复制DOM所以说代码1,先移除DOM,再把移除的DOM移动到某处,和代码2,直接移动DOM到某处,是一回事
打开App,查看更多内容
随时随地看视频慕课网APP