前端基礎之jQuery進階

Xiao0101發表於2024-03-23

jQuery操作標籤

1、類class操作

(1)原生js(DOMclass屬性操作)

① 新增類名(classList.add())

  • 您可以使用classList.add()方法向元素新增一個類名。
// 獲取元素
var element = document.getElementById('myElement');

// 新增類名
element.classList.add('newClass');

② 移除類名(classList.remove())

  • 您可以使用classList.remove()方法從元素中移除一個類名。
// 獲取元素
var element = document.getElementById('myElement');

// 移除類名
element.classList.remove('oldClass');

③ 切換類名(classList.toggle())

  • 您可以使用classList.toggle()方法來切換一個類名的存在狀態。
    • 如果類名存在,則移除它;
    • 如果不存在,則新增它。
// 獲取元素
var element = document.getElementById('myElement');

// 切換類名
element.classList.toggle('active');

④ 檢查是否包含某個類名(classList.contains())

  • 您可以使用classList.contains()方法檢查一個元素是否包含特定的類名,返回一個布林值。
// 獲取元素
var element = document.getElementById('myElement');

// 檢查是否包含類名
if (element.classList.contains('myClass')) {
    // 包含類名的操作
}

(2)jQuery class屬性操作

① 新增類名(addClass())

  • 用於向元素新增一個或多個類名。如果指定的類名已存在,則不會新增。
$(element).addClass("class1 class2");

② 移除類名(removeClass())

  • 用於從元素移除一個或多個類名。如果指定的類名不存在,則不會發生任何操作。
$(element).removeClass("class1 class2");

③ 切換類名(toggleClass())

  • 用於在元素的類名中切換指定的類名。

    • 如果類名不存在,則新增類名;

    • 如果類名已存在,則移除類名。

$(element).toggleClass("class");

④ 檢查是否包含某個類名(hasClass())

  • 用於檢查元素是否包含指定的類名,返回一個布林值。
if ($(element).hasClass("class1")) {
    // 包含 class1 類名的處理邏輯
} else {
    // 不包含 class1 類名的處理邏輯
}

(3)總結

js版本                            jQuery版本
classList.add()                   addClass()
classList.remove()				  removeClass()
classList.contains()			  hasClass()
classList.toggle()				  toggleClass()

2、樣式css操作

(1)語法

標籤.css('屬性','樣式')

// 選擇了div標籤並將它們的文字顏色設定為綠色。
$("div").css("color", "green");

(2)鏈式操作

① jQuery鏈式操作

使用jQuery可以做到一行程式碼操作很多標籤

html:
<p>JavaScript</p>
<p>jQuery</p>

一行程式碼將第一個p標籤變成紅色第二個p標籤變成綠色:

$('p').first().css('color','red').next().css('color','green')

② python中類似於jQuery中的鏈式操作

class Myclass(object):
    def func1(self):
        print('func1')
        return self

    def func2(self):
        print('func2')
        return self


obj = Myclass()
obj.func1().func2()

(3)總結

鏈式操作的本質:jQuery物件呼叫jQuery方法之後返回的還是當前jQuery物件 也就可以繼續呼叫其他方法。

類似python的物件鏈式操作,也可以連續操作物件

3、標籤的位置操作

(1)offset()

offset() 是 jQuery 中用於獲取匹配元素在文件中的偏移(offset)座標的方法。這個方法返回一個包含 topleft 屬性的物件,這些屬性表示元素相對於文件的偏移位置。

語法

$(selector).offset()

示例

假設有一個 <div> 元素如下:

<div id="myDiv">Hello, World!</div>

你可以使用 offset() 方法來獲取該 <div> 元素相對於文件的偏移位置:

var offset = $("#myDiv").offset();
console.log("Top: " + offset.top + ", Left: " + offset.left);

返回值

offset() 方法返回一個物件,該物件包含兩個屬性:

  • top:表示元素頂部邊緣相對於文件頂部的偏移量。
  • left:表示元素左側邊緣相對於文件左側的偏移量。

注意事項

  • offset() 方法返回的是相對於文件的偏移位置,而不是相對於父級元素的位置。
  • 如果你需要相對於父級元素的偏移位置,可以使用 position() 方法。

(2)position()

position() 是 jQuery 中用於獲取匹配元素相對於父級元素的偏移位置的方法。與 offset() 方法返回元素相對於文件的偏移位置不同,position() 方法返回元素相對於最近的已定位祖先元素的偏移位置。

語法

$(selector).position()

示例

假設有以下 HTML 結構:

<div id="parent" style="position: relative;">
    <div id="child">Hello, World!</div>
</div>

你可以使用 position() 方法來獲取子元素相對於父元素的偏移位置:

var position = $("#child").position();
console.log("Top: " + position.top + ", Left: " + position.left);

返回值

position() 方法返回一個物件,該物件包含兩個屬性:

  • top:表示元素頂部邊緣相對於父元素頂部的偏移量。
  • left:表示元素左側邊緣相對於父元素左側的偏移量。

注意事項

  • position() 方法返回的是相對於最近的已定位祖先元素的偏移位置。
  • 如果元素的祖先元素都沒有定位(position 屬性為 relative、absolute、fixed 或 sticky),position() 方法將返回相對於文件的偏移位置。

(3)scrollTop()

scrollTop() 是 jQuery 中用於獲取或設定匹配元素的垂直捲軸偏移量的方法。這個方法適用於包含捲軸的元素,如視窗或包含捲軸的 <div> 元素。

獲取垂直捲軸的偏移量

var scrollOffset = $(selector).scrollTop();

設定垂直捲軸的偏移量

$(selector).scrollTop(value);
  • selector:要操作的元素選擇器。
  • value:可選,要設定的垂直捲軸的偏移量值。

示例

假設有一個包含捲軸的 <div> 元素:

<div id="scrollableDiv" style="height: 200px; overflow: auto;">
    <!-- 大量內容 -->
</div>

你可以使用 scrollTop() 方法來獲取或設定該元素的垂直捲軸偏移量:

// 獲取垂直捲軸的偏移量
var scrollOffset = $("#scrollableDiv").scrollTop();
console.log("垂直捲軸偏移量:" + scrollOffset);

// 設定垂直捲軸的偏移量為 100px
$("#scrollableDiv").scrollTop(100);

返回值

  • 當不提供引數時,scrollTop() 方法返回匹配元素的當前垂直捲軸偏移量。
  • 當提供引數時,scrollTop() 方法設定匹配元素的垂直捲軸偏移量為指定值,並返回 jQuery 物件以支援鏈式呼叫。

scrollTop() 方法常用於控制捲軸位置,特別是在處理滾動事件時或需要透過程式設計方式滾動元素時。

(4)scrollLeft()

scrollLeft() 是 jQuery 中用於獲取或設定匹配元素的水平捲軸偏移量的方法。這個方法適用於包含水平捲軸的元素,如視窗或包含水平捲軸的 <div> 元素。

獲取水平捲軸的偏移量

var scrollOffset = $(selector).scrollLeft();

設定水平捲軸的偏移量

$(selector).scrollLeft(value);
  • selector:要操作的元素選擇器。
  • value:可選,要設定的水平捲軸的偏移量值。

示例

假設有一個包含水平捲軸的 <div> 元素:

<div id="scrollableDiv" style="width: 200px; overflow: auto;">
    <!-- 大量內容 -->
</div>

你可以使用 scrollLeft() 方法來獲取或設定該元素的水平捲軸偏移量:

// 獲取水平捲軸的偏移量
var scrollOffset = $("#scrollableDiv").scrollLeft();
console.log("水平捲軸偏移量:" + scrollOffset);

// 設定水平捲軸的偏移量為 50px
$("#scrollableDiv").scrollLeft(50);

返回值

  • 當不提供引數時,scrollLeft() 方法返回匹配元素的當前水平捲軸偏移量。
  • 當提供引數時,scrollLeft() 方法設定匹配元素的水平捲軸偏移量為指定值,並返回 jQuery 物件以支援鏈式呼叫。

scrollLeft() 方法通常用於控制水平捲軸位置,特別是在處理水平滾動事件時或需要透過程式設計方式滾動元素時。

# 位置操作


$(window).scrollTop()  # 控制頁面上下滾動的偏移量
0
$(window).scrollTop()
398.6666564941406

w.fn.init {0: Window, length: 1}

(5)總結

offset()       // 獲取該標籤相對於瀏覽器視窗的位置引數
position()     // 獲取該標籤相對於父標籤的位置引數 
scrollTop()    // 獲取或設定匹配元素的垂直捲軸偏移量
scrollLeft()   // 獲取或設定匹配元素的水平捲軸偏移量

// 括號內不加引數就是獲取
$(window).scrollTop()    // 獲取當前(豎)滑動條與瀏覽器頂部的位置
$(window).scrollLeft()   // 獲取當前(橫)滑動條與瀏覽器左部的位置距離

// 加了引數就是設定
$(window).scrollTop(0)  
$(window).scrollTop(500)  // 跳到距離瀏覽器頂部500的位置
$(window).scrollLeft(500) // 跳到距離瀏覽器左側500的位置   
           
 
4.尺寸:
   
# 尺寸
$('p').height()  # 文字的高度
20
$('p').width()  # 文字的寬度
850
$('p').innerHeight()  # 文字+padding
26
$('p').innerWidth()
854
$('p').outerHeight()  # 文字+padding+border
26
$('p').outerWidth()
854

4、尺寸操作

(1).height() 和 .width()

  • 這兩個方法用於獲取或設定元素的高度和寬度。
    • 如果不傳遞引數,它們分別返回元素的內容區域的高度和寬度。
    • 如果傳遞一個數字作為引數,可以設定元素的高度和寬度。

(2).innerHeight() 和 .innerWidth()

  • 這兩個方法用於獲取元素的內部高度和寬度,包括內容區域和內邊距(padding)。
    • 它們返回的值不包括邊框和外邊距。

(3).outerHeight() 和 .outerWidth()

  • 這兩個方法用於獲取元素的外部高度和寬度,包括內容區域、內邊距和邊框,但不包括外邊距。
    • 可以透過傳遞一個布林值引數來指定是否包括邊框,預設為false。

(4).outerHeight(true) 和 .outerWidth(true)

  • 這兩個方法用於獲取元素的完整的外部高度和寬度,包括內容區域、內邊距、邊框和外邊距。

(5)總結

$('p').height()             //獲取p標籤文字高度
$('p').width()				//獲取p標籤文字寬度
$('p').innerHeight()        //獲取p標籤文字+padding高
$('p').innerWidth()         //獲取p標籤文字+padding寬
$('p').outerHeight()        //獲取p標籤文字+padding+border高
$('p').outerwidth()         //獲取p標籤文字+padding+border寬

5、文字操作

js方法 jQuery方法 作用
.innerText .text() 不填引數為獲取文字,填寫為設定文字
.innerHTML .html() 不填引數為獲取html文件,填寫為設定html文件
.value .val() 不填引數為獲取使用者輸入的內容,填寫為設定使用者輸入的內容

(1)js操作標籤內部文字

① innerText

  • innerText屬性用於設定或返回指定元素中的文字內容,不包括HTML標記。

  • 當使用innerText屬性時,所有HTML標記都將被視為純文字並被直接顯示在頁面上。

  • 這意味著如果在innerText中包含HTML標記,那麼標記將被作為普通文字顯示而不會被解析。

  • 此外,innerText屬性是隻讀的,即使嘗試修改該屬性的值也不會有任何效果。

使用示例:

<div id="myElement">This is <strong>bold</strong> text.</div>
<script>
   var element = document.getElementById("myElement");
   console.log(element.innerText); // 輸出:"This is bold text."
   element.innerText = "Updated text"; // 嘗試修改innerText但不會生效
</script>

② innerHTML

  • innerHTML屬性用於設定或返回指定元素的HTML內容,可以包含HTML標記和文字。
  • 與innerText不同,使用innerHTML屬性時,所有HTML標記都會被解析並在頁面上正確渲染。
    • 這意味著可以透過innerHTML屬性來新增、修改或刪除HTML元素及其屬性。
  • 需要注意的是,innerHTML屬性可以導致程式碼注入攻擊,因此使用時需謹慎驗證並過濾使用者輸入。

使用示例:

<div id="myElement">This is <strong>bold</strong> text.</div>
<script>
   var element = document.getElementById("myElement");
   console.log(element.innerHTML); // 輸出:"This is <strong>bold</strong> text."
   element.innerHTML = "Updated <em>text</em>"; // 修改innerHTML會動態更新頁面中的內容
</script>

③ 總結

  • innerText用於操作元素中的純文字內容,不解析HTML標記,且是隻讀屬性。
  • innerHTML用於操作元素中的HTML內容,可以包含HTML標記

(2)jQuery操作標籤內部文字

① .text()

  • 獲取文字內容:
var text = $(".my-element").text();
console.log(text);
  • 設定文字內容:
$(".my-element").text("New text content");

② .html()

  • 獲取HTML內容:
var html = $(".my-element").html();
console.log(html);
  • 設定HTML內容:
$(".my-element").html("<p>New HTML content</p>");

③ .val()

  • 獲取表單元素的值:
var value = $("#my-input").val();
console.log(value);

// 獲取input標籤內的檔案
// 先獲取標籤物件,再用標籤物件去取檔案
$("#my-input")[0].files[0];
  • 設定表單元素的值:
$("#my-input").val("New value");

④ .append()

  • 在每個匹配元素內部末尾插入內容:
$(".my-element").append("<span>Appended content</span>");

⑤ .prepend()

  • 在每個匹配元素內部開頭插入內容:
$(".my-element").prepend("<span>Prepended content</span>");

⑥ .after()

  • 在每個匹配元素之後插入內容:
$(".my-element").after("<div>Content after</div>");

⑦ .before()

  • 在每個匹配元素之前插入內容:
$(".my-element").before("<div>Content before</div>");

6、獲取值操作

(1)原生js獲取文字資料(.value)

標籤.value                    // 獲取標籤的value值
標籤.value = ''               // 將標籤的value值清空
標籤.value = 'df'             // 將標籤的value值設定df

(2)jQuery獲取文字資料(.val)

$('標籤').val()               // 獲取標籤的value值
$('標籤').val('')             // 將標籤的value值清空
$('標籤').val('df')           // 將標籤的value值設定df

(3)獲取檔案資料

js:fileEle.files[0]         // 獲取檔案資料,要加索引[0],第一個才是檔案資料
jQuery:$('標籤')[0].files[0] // 轉換標籤物件再索取

ps:牢記dom物件和jQuery物件的轉換

7、屬性操作

js方法 jQuery方法 作用
setAttribute() attr(name,value) 設定/更改屬性
getAttribute() attr(name) 獲取屬性
removeAttribute() removeAttr(name) 移除屬性

ps:在用變數儲存物件的時候,js中推薦使用xxxEle,而在jQuery中推薦使用$xxxEle

(1)jQuery普通屬性操作

$pEle.attr('id')                //獲取id的屬性
$pEle.attr('class','c1')        //更改class屬性為c1
$pEle.attr('password','123')    //自定義屬性也可以更改
$pEle.removeAttr('password')    //刪除password屬性

(2)針對checked的特殊方法 prop()

.prop() 是 jQuery 中用於獲取或設定元素屬性值的方法。它通常用於處理元素的屬性,例如核取方塊的 checked radio option屬性、輸入框的 disabled 屬性等。如果在判斷是否選中時,用attr時無法正確獲取。則需要使用.prop()。

語法:

$(selector).prop(propertyName);
$(selector).prop(propertyName, value);
  • propertyName 是要獲取或設定的屬性名稱。
  • value 是要設定的屬性值。

示例:

// 獲取核取方塊的 checked 屬性值
var isChecked = $("#myCheckbox").prop("checked");  // 返回true/false

// 自定義設定輸入框的 disabled 屬性為 true
$("#myInput").prop("disabled", true);

在上述示例中,第一個示例演示瞭如何使用 .prop() 方法獲取核取方塊的 checked 屬性值,而第二個示例演示瞭如何將輸入框的 disabled 屬性設定為 true。

.prop() 方法通常用於處理元素的固有屬性,而不是普通的屬性。

(3)總結

  • 對於標籤上有的能夠看到的屬性和自定義屬性用attr
  • 對於返回布林值比如checkbox radio option是否被選中用prop

(4)補充

① 隱藏標籤 .hide()

hide() 是 jQuery 中用於隱藏元素的方法。使用 hide() 方法可以將匹配的元素設定為不可見。

語法:

$(selector).hide(speed, callback);
  • speed 引數可選,指定隱藏的速度,可以是毫秒數或預定義的字串值(如 "slow" 或 "fast")。
  • callback 引數可選,指定隱藏完成後要執行的回撥函式。

示例:

// 隱藏id為"myElement"的元素
$("#myElement").hide();

// 慢速隱藏id為"myElement"的元素
$("#myElement").hide("slow");

// 在隱藏完成後執行回撥函式
$("#myElement").hide(1000, function(){
    console.log("Element is now hidden");
});

在上述示例中,hide() 方法用於隱藏指定的元素。您可以選擇設定隱藏的速度,也可以在隱藏完成後執行回撥函式。

② 顯示標籤 .show()

.show() 是 jQuery 中用於顯示隱藏的元素的方法。當元素使用 .hide() 方法隱藏後,可以使用 .show() 方法將其重新顯示。

語法:

$(selector).show();
$(selector).show(speed);
$(selector).show(speed, callback);
  • speed 引數可選,用於設定顯示動畫的速度,可以是毫秒數或預定義的字串值(如 "slow"、"fast")。
  • callback 引數可選,是在顯示動畫完成後執行的回撥函式。

示例:

// 顯示隱藏的元素
$("#myElement").show();

// 以 "slow" 速度顯示元素
$("#myElement").show("slow");

// 以自定義速度顯示元素,並在動畫完成後執行回撥函式
$("#myElement").show(1000, function() {
    console.log("Element has been shown.");
});

在上述示例中,第一個示例演示瞭如何使用 .show() 方法簡單地顯示一個隱藏的元素,第二個示例展示瞭如何以 "slow" 速度顯示元素,第三個示例演示瞭如何以自定義速度顯示元素,並在動畫完成後執行回撥函式。

8、文件處理

(1)JavaScript使用

① createElement()

在 JavaScript 中,document.createElement(tagName) 是用於建立一個指定標籤名的新 HTML 元素的方法。這個方法通常用於動態地建立新的元素,然後可以將這些元素新增到文件中的指定位置。

下面是一個簡單的示例,演示如何使用 document.createElement(tagName) 方法建立一個新的 <div> 元素,並將其新增到文件中:

// 建立一個新的 <div> 元素
var newDiv = document.createElement("div");

// 設定新建立的 <div> 元素的文字內容
newDiv.textContent = "This is a new div element.";

// 將新建立的 <div> 元素新增到文件中的 body 元素中
document.body.appendChild(newDiv);

在上面的示例中,我們首先使用 document.createElement("div") 建立了一個新的 <div> 元素,然後設定了這個元素的文字內容,最後使用 appendChild() 方法將這個新建立的 <div> 元素新增到文件中的 <body> 元素中。

這個方法在動態生成內容、處理表單資料、實現動態互動等方面非常有用。

② appendChile()

appendChild() 方法是用於將一個新的子節點新增到指定父節點的方法。在 JavaScript 中,這個方法通常用於將一個新建立的元素新增到文件中的指定位置。

下面是一個簡單的示例,演示如何使用 appendChild() 方法將一個新建立的 <div> 元素新增到文件中的 <body> 元素中:

// 建立一個新的 <div> 元素
var newDiv = document.createElement("div");

// 設定新建立的 <div> 元素的文字內容
newDiv.textContent = "This is a new div element.";

// 將新建立的 <div> 元素新增到文件中的 body 元素中
document.body.appendChild(newDiv);

在上面的示例中,我們首先建立了一個新的 <div> 元素,然後設定了這個元素的文字內容,最後使用 appendChild() 方法將這個新建立的 <div> 元素新增到文件中的 <body> 元素中。

appendChild() 方法是用於將一個子節點新增到指定父節點的最常用方法之一。

(2)jQuery使用

① $(selector)

  • 使用選擇器來選取匹配的元素,並返回一個jQuery物件。
    • 可以透過該物件執行各種操作。
var elements = $('p'); // 選取頁面上所有的 <p> 元素

② $(selector).prepend(content)

內部頭部追加

  • 用於在目標元素的內部開頭位置插入內容。

語法

$(selector).prepend(content);
  • selector:選擇器,表示要選中的目標元素。

  • content:要插入的內容,可以是 HTML 字串、DOM 元素、或者其他 jQuery 物件。

示例一:插入單個內容

$('div').prepend('<p>This is a new paragraph.</p>');
  • 上述示例會在頁面上的所有 <div> 元素內部的開頭位置插入一個新的 <p> 元素。

  • 該方法將給定內容(content)插入到每個匹配元素的子元素列表的開頭位置,使其成為子元素列表中的第一個元素。

示例二:插入多個內容

  • 如果要插入多個內容,可以透過鏈式呼叫來連續進行 prepend 操作。
$('div').prepend('<p>Paragraph 1</p>').prepend('<p>Paragraph 2</p>');
  • 上述示例會先在每個 <div> 元素內部的開頭位置插入 "Paragraph 1",然後再在開頭位置插入 "Paragraph 2"。

③ $(selector).append(content)

內部尾部追加

  • 將指定的內容追加到每個匹配元素的末尾。
    • 可以用來向元素中插入新的內容。
$('div').append('<p>This is a new paragraph.</p>');

④ $(selector).appendTo()

目標元素內部尾部追加

  • 用於將當前元素插入到目標元素內部末尾的方法。

語法

$(currentElement).appendTo(targetElement);
  • currentElement

    • 要插入的當前元素,可以是 HTML 字串、DOM 元素、或者其他 jQuery 物件。
  • targetElement

    • 目標元素,表示要將當前元素插入到該元素內部的末尾位置。

示例

$('<p>This is a new paragraph.</p>').appendTo('div');
  • 上述示例將一個新建立的 <p> 元素插入到頁面上所有的 <div> 元素內部的末尾。

  • 該方法的作用相當於 targetElement.append(currentElement),只是調換了插入順序,使得使用鏈式方法時可以更加流暢地構建操作。

⑤ $(selector).insertAfter(target)`

將目標元素插入到指定目標元素的後面。

  • 用於將目標元素插入到指定目標元素的後面。

語法

$(selector).insertAfter(target);
  • selector:選擇器,表示要選中的目標元素。
  • target:目標元素,可以是選擇器、DOM 元素或者 jQuery 物件,表示要將目標元素插入到它後面。

示例一:插入單個元素

$('<p>This is a new paragraph.</p>').insertAfter('div');
  • 上述示例會在頁面上的所有 <div> 元素後面插入一個新的 <p> 元素。

  • 該方法將目標元素插入到指定目標元素的後面,使其成為同級的下一個元素。

示例二:插入多個元素

  • 如果要插入多個目標元素,可以透過鏈式呼叫來連續進行 insertAfter 操作。
$('<p>Paragraph 1</p>').insertAfter('div').insertAfter('span');
  • 上述示例會先在每個 <div> 元素後面插入 "Paragraph 1",然後再在每個 <span> 元素後面插入 "Paragraph 1"。

⑥ $(selector).insertBefore(content)

  • 用於將選中的元素插入到目標元素的前面。

語法

$(content).insertBefore(selector);
  • selector:選擇器,表示目標元素。
  • content:要插入的內容,可以是 HTML 字串、DOM 元素或者 jQuery 物件。

示例一:所有元素前插入相同的元素

$('<p>Insert this paragraph</p>').insertBefore('div');
  • 上述示例會將一個新的 <p> 元素插入到頁面上的所有 <div> 元素之前。

  • 該方法會將選中的元素插入到目標元素之前,成為同級的上一個元素。

    • 插入的內容可以是文字、HTML 元素或者其他 DOM 元素。

示例二:多個目標元素前插入相同的元素

  • 如果要在多個目標元素前插入相同的元素,可以透過鏈式呼叫來連續進行插入操作。例如:
$('<p>Paragraph 1</p>').insertBefore('div').insertBefore('span');
  • 上述示例會先將 "Paragraph 1" 插入每個 <div> 元素之前,然後再將 "Paragraph 1" 插入每個 <span> 元素之前。

⑦ $(selector).before(content)

  • 用於在目標元素前面插入內容。

語法

$(selector).before(content);
  • selector:選擇器,表示要選中的目標元素。
  • content:要插入的內容,可以是 HTML 字串、DOM 元素或者 jQuery 物件。

示例一:所有元素前插入相同的元素

$('<p>This is a new paragraph.</p>').before('div');
  • 上述示例會在頁面上的所有 <div> 元素之前插入一個新的 <p> 元素。

  • 該方法將內容插入到目標元素的前面,成為同級的上一個元素。

    • 插入的內容可以是文字、HTML 元素或者其他 DOM 元素。

示例二:多個目標元素前插入相同的元素

  • 如果要在多個目標元素前插入相同的內容,可以透過鏈式呼叫來連續進行插入操作。例如:
$('<p>Paragraph 1</p>').before('div').before('span');
  • 上述示例會先在每個 <div> 元素前插入 "Paragraph 1"
    • 然後再在每個 <span> 元素前插入 "Paragraph 1"。

⑧ $(selector).after(content)

  • 用於將選中的元素插入到目標元素的後面。

語法

$(content).insertAfter(selector);
  • selector:選擇器,表示目標元素。
  • content:要插入的內容,可以是 HTML 字串、DOM 元素或者 jQuery 物件。

示例

$('<p>Insert this paragraph</p>').insertAfter('div');
  • 上述示例會將一個新的 <p> 元素插入到頁面上的所有 <div> 元素之後。

  • 該方法會將選中的元素插入到目標元素之後,成為同級的下一個元素。

    • 插入的內容可以是文字、HTML 元素或者其他 DOM 元素。
  • 如果要在多個目標元素後插入相同的元素,可以透過鏈式呼叫來連續進行插入操作。例如:

$('<p>Paragraph 1</p>').insertAfter('div').insertAfter('span');
  • 上述示例會先將 "Paragraph 1" 插入每個 <div> 元素之後,然後再將 "Paragraph 1" 插入每個 <span> 元素之後。

⑨ $(selector).remove(content)

  • 用於刪除選中的元素以及其子元素。

語法

$(selector).remove(content);
  • selector:選擇器,表示目標元素。
  • content:可選引數,表示要過濾的內容,只有與指定內容匹配的元素會被刪除。可以是一個選擇器、字串或者 DOM 元素。

示例

$('p').remove();
  • 上述示例會刪除頁面上所有的 <p> 元素及其子元素。

  • 該方法會移除與選擇器匹配的元素,並且將其從文件中刪除。

    • 如果提供了 content 引數,則只有與該引數內容匹配的元素才會被刪除。
  • 如果想要從文件中移除多個不同的元素,可以使用多個選擇器或者多次呼叫 remove() 方法來實現。例如:

$('.class1, .class2').remove();
  • 上述示例會移除具有 class1class2 類名的所有元素。

  • 請注意,使用 remove() 方法會從文件中永久刪除元素,而不僅僅是隱藏它們。

    • 所以在使用該方法之前,請確保已經不再需要這些元素,因為無法恢復已刪除的元素。

⑩ $(selector).empty(content)

  • 用於清空選中元素的所有子元素。

語法

$(selector).empty(content);
  • selector:選擇器,表示目標元素。
  • content:選引數,表示要過濾的內容,只有與指定內容匹配的子元素會被清空。可以是一個選擇器、字串或者 DOM 元素。

示例

$('div').empty();
  • 上述示例會清空上所有 <div> 元素的子元素。

  • 該方法將會移除所選元素的所有子元素,但會保留自身。

    • 如果提供了 content 引數,則只有與該引數內容匹配的子元素才會被清空。
  • remove() 方法不同的是,empty() 方法僅清空元素的子元素,而不會將元素本身從文件中刪除。

  • 如果想同時清空多個不同元素的子元素,可以使用多個選擇器或者多次呼叫 empty() 方法來實現。例如:

$('.class1, .class2').empty();
  • 上述示例會清空所有具有 class1class2 類名的元素的子元素。
  • 請注意,使用 empty() 方法只會清空元素的子元素,元素本身仍然存在於文件中。

(3)總結

# 文件處理
'''
js                                jQuery
createElement()                   $('<p>')
appendChile()                     append()
'''
let $pEle = $('<p>')
$pEle.text('快速上車')
$pEle.attr('id','d1')
$('#d1').append($pEle)  # 內部尾部追加
$('#d1').appendTo($('#d1')

$('#d1').prepend($pEle)  # 內部頭部追加
$('#d1').prependTo($('#d1')
                   
$('#d2').after($pEle)  # 放在某個標籤後面
$pEle.insertAfter($('#d1')) 
                   
$('#d1').before($pEle)  # 放在某個標籤後面
$pEle.insertBefore($('#d2')) 
 
$('#d1').remove()  # 將標籤從DOM樹中刪除
$('#d1').empty()  # 清空標籤內部所有的內容

相關文章