51、52、53、54節點相關方法

什麼是節點?

創建一個節點
var $li = $("<li>新增的li</li>");

51-jQuery添加節點相關方法

內部插入

  • 會將元素添加到指定元素內部的最後
append(content|fn)				
例子:$("ul").append($li);
appendTo(content)				
例子:$li.prependTo("ul");
  • 會將元素添加到指定元素內部的最前面
    prepend(content|fn)
    prependTo(content)

外部插入

  • 會將元素添加到指定元素外部的後面
    after(content|fn)
    insertAfter(content)

  • 會將元素添加到指定元素外部的前面

before(content|fn)			
例子:$("ul").before($li);
insertBefore(content)		
例子:$li.insertAfter("ul");
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>51-jQuery添加節點相關方法</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function () {
            /*
            內部插入
            append(content|fn)
            appendTo(content)
            會將元素添加到指定元素內部的最後

            prepend(content|fn)
            prependTo(content)
            會將元素添加到指定元素內部的最前面

            外部插入
            after(content|fn)
            insertAfter(content)
            會將元素添加到指定元素外部的後面

            before(content|fn)
            insertBefore(content)
            會將元素添加到指定元素外部的前面
            */
            $("button").click(function () {
                // 1.創建一個節點
                var $li = $("<li>新增的li</li>");
                // 2.添加節點
                $("ul").append($li);
                $("ul").prepend($li);

                // $li.appendTo("ul");
                // $li.prependTo("ul");


                // $("ul").after($li);
                // $("ul").before($li);
                // $li.insertAfter("ul");
            });
        });
    </script>
</head>
<body>
<button>添加節點</button>
<ul>
    <li>我是第1個li</li>
    <li>我是第2個li</li>
    <li>我是第3個li</li>
</ul>
<div>我是div</div>
</body>
</html>

52-jQuery刪除節點相關方法

  • remove([expr])刪除指定元素(利用remove刪除之後再重新添加,原有的事件無 法響應)
  • detach([expr])刪除指定元素(利用detach刪除之後再重新添加,原有事件可以響應)
  • empty([expr])刪除指定元素的內容和子元素, 指定元素自身不會被刪除
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>52-jQuery刪除節點相關方法</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function () {
            /*
            刪除
            remove([expr])刪除指定元素(利用remove刪除之後再重新添加,原有的事件無法響應)
            detach()刪除指定元素(利用detach刪除之後再重新添加,原有事件可以響應)
            empty()
            刪除指定元素的內容和子元素, 指定元素自身不會被刪除
            
            */
            $("button").click(function () {
                // $("div").remove();
                // $("div").empty();
                // $("li").remove(".item");

                // 利用remove刪除之後再重新添加,原有的事件無法響應
                // var $div = $("div").remove();
                // 利用detach刪除之後再重新添加,原有事件可以響應
                var $div = $("div").detach();
                // console.log($div);
                $("body").append($div);
            });
            $("div").click(function () {
                alert("div被點擊了");
            });
        });
    </script>
</head>
<body>
<button>刪除節點</button>
<ul>
    <li class="item">我是第1個li</li>
    <li>我是第2個li</li>
    <li class="item">我是第3個li</li>
    <li>我是第4個li</li>
    <li class="item">我是第5個li</li>
</ul>
<div>我是div
    <p>我是段落</p>
</div>
</body>
</html>

53-jQuery替換節點相關方法

  • 替換所有匹配的元素爲指定的元素
replaceWith(content|fn)    	
例子:$("h1").replaceWith($h6);
replaceAll(selector)		     	
例子:$h6.replaceAll("h1");
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>53-jQuery替換節點相關方法</title>
    <script src="../jQuery基礎/js/jquery-1.12.4.js"></script>
    <script>
        $(function () {
            /*
            替換
            replaceWith(content|fn)
            replaceAll(selector)
            替換所有匹配的元素爲指定的元素
            */
            $("button").click(function () {
                // 1.新建一個元素
                var $h6 = $("<h6>我是標題6</h6>");
                // 2.替換元素
                // $("h1").replaceWith($h6);
                $h6.replaceAll("h1");
            });
        });
    </script>
</head>
<body>
<button>替換節點</button>
<h1>我是標題1</h1>
<h1>我是標題1</h1>
<p>我是段落</p>
</body>
</html>

54-jQuery複製節點相關方法

  • clone([Even[,deepEven]])
    如果傳入false就是淺複製, 如果傳入true就是深複製,
    淺複製只會複製元素, 不會複製元素的事件
    深複製會複製元素, 而且還會複製元素的事件。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>54-jQuery複製節點相關方法</title>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        $(function () {
            // clone([Even[,deepEven]])
            /*
            如果傳入false就是淺複製, 如果傳入true就是深複製
            淺複製只會複製元素, 不會複製元素的事件
            深複製會複製元素, 而且還會複製元素的事件
            */
            $("button").eq(0).click(function () {
                // 1.淺複製一個元素
                var $li = $("li:first").clone(false);
                // 2.將複製的元素添加到ul中
                $("ul").append($li);
            });
            $("button").eq(1).click(function () {
                // 1.深複製一個元素
                var $li = $("li:first").clone(true);
                // 2.將複製的元素添加到ul中
                $("ul").append($li);
            });
            $("li").click(function () {
                alert($(this).html());
            });
        });
    </script>
</head>
<body>
<button>淺複製節點</button>
<button>深複製節點</button>
<ul>
    <li>我是第1個li</li>
    <li>我是第2個li</li>
    <li>我是第3個li</li>
    <li>我是第4個li</li>
    <li>我是第5個li</li>
</ul>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章