为什么元素会被移动呢?

来源:3-1 zepto中的DOM操作

李知恩

2021-03-30 23:44:26

http://img.mukewang.com/climg/6063472609c70bac37361421.jpg

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>zepto中的DOM操作</title>

</head>

<body>

    <div id="a">

        <div class="a_one">a_one</div>

    </div>


    <ul>

        <li>

            <span>删除</span>

            <p>藏起来</p>

        </li>

    </ul>


    <p>李知恩</p>

    <p>李知恩</p>

    <script type="text/javascript" src="../../lib/zepto.min.js"></script>

    <script type="text/javascript">

        $(document).ready(function(){

            //js代码

            //插入操作

            var $cr = $("<div class='cr'> 插入的div </div>");

            //$('#a').append($cr);//---从后面插入子元素

            //$cr.appendTo($('#a'));//---从后面插入子元素

            //$('#a').prepend($cr);//---从前面插入子元素

            //$cr.prependTo($('#a'));//---从前面插入子元素

            //$('#a').after($cr);//---在后面插入一个兄弟元素

            //$cr.insertAfter($('#a'));//---在后面插入一个兄弟元素

            //$('#a').before($cr);//---在前面插入一个兄弟元素

            //$cr.insertBefore($('#a'));//---在前面插入一个兄弟元素


            //删除操作  remove/empty

            //$('ul li').remove();//删除li元素及其子元素

            //$('ul li').empty();//删除li的所有子元素


            //复制节点

            /* $('ul li').click(function(){

                $(this).clone().appendTo($('ul'));

            })  */ 


            //替换节点  replaceWith

           //$('p').replaceWith("<span>刘亦菲</span>");


            //包裹节点

            //$('p').wrap("<div></div>");

            $('p').wrapAll("<div></div>");


        })

    

    </script>

</body>

</html>


写回答

1回答

好帮手慕慕子

2021-03-31

同学你好,因为wrapAll方法会将所有符合条件的标签,都移动到第一个符合条件的标签的后面,然后使用指定的标签包裹起来。元素会被移动是这个方法的特点,特殊记忆下即可。

同学代码中,第一个符合条件的p标签在li标签中,所以会将其他的p标签放在这个p标签后面,然后使用div标签包裹他们。

祝学习愉快~

0

0 学习 · 3299 问题

查看课程