jQuery 獲取內容和屬性
jQuery DOM 操作
jQuery 中非常重要的部分,就是操作 DOM 的能力。
jQuery 提供一系列與 DOM 相關的方法,這使訪問和操作元素和屬性變得很容易。
提示:DOM = Document Object Model(文檔對象模型)
獲得內容 - text()、html() 以及 val()
三個簡單實用的用於 DOM 操作的 jQuery 方法:
- text() - 設置或返回所選元素的文本內容
- html() - 設置或返回所選元素的內容(包括 HTML 標記)
- val() - 設置或返回表單字段的值
下面的例子演示如何通過 jQuery text() 和 html() 方法來獲得內容:
實例
$("#btn1").click(function(){ alert("Text: " + $("#test").text()); }); $("#btn2").click(function(){ alert("HTML: " + $("#test").html()); });
下面的例子演示如何通過 jQuery val() 方法獲得輸入字段的值:
實例
$("#btn1").click(function(){ alert("Value: " + $("#test").val()); });
獲取屬性 - attr()
jQuery attr() 方法用於獲取屬性值。
下面的例子演示如何獲得鏈接中 href 屬性的值:
實例
$("button").click(function(){ alert($("#w3s").attr("href")); });
jQuery 設置內容和屬性
設置內容 - text()、html() 以及 val()
我們將使用前一章中的三個相同的方法來設置內容:
- text() - 設置或返回所選元素的文本內容
- html() - 設置或返回所選元素的內容(包括 HTML 標記)
- val() - 設置或返回表單字段的值
下面的例子演示如何通過 text()、html() 以及 val() 方法來設置內容:
實例
$("#btn1").click(function(){ $("#test1").text("Hello world!"); }); $("#btn2").click(function(){ $("#test2").html("<b>Hello world!</b>"); }); $("#btn3").click(function(){ $("#test3").val("Dolly Duck"); });
text()、html() 以及 val() 的回調函數
上面的三個 jQuery 方法:text()、html() 以及 val(),同樣擁有回調函數。回調函數由兩個參數:被選元素列表中當前元素的下標,以及原始(舊的)值。然后以函數新值返回您希望使用的字符串。
下面的例子演示帶有回調函數的 text() 和 html():
實例
$("#btn1").click(function(){ $("#test1").text(function(i,origText){ return "Old text: " + origText + " New text: Hello world! (index: " + i + ")"; }); }); $("#btn2").click(function(){ $("#test2").html(function(i,origText){ return "Old html: " + origText + " New html: Hello <b>world!</b> (index: " + i + ")"; }); });
設置屬性 - attr()
jQuery attr() 方法也用於設置/改變屬性值。
下面的例子演示如何改變(設置)鏈接中 href 屬性的值:
實例
$("button").click(function(){ $("#w3s").attr("href","http://www.w3school.com.cn/jquery"); });
attr() 方法也允許您同時設置多個屬性。
下面的例子演示如何同時設置 href 和 title 屬性:
實例
$("button").click(function(){ $("#w3s").attr({ "href" : "http://www.w3school.com.cn/jquery", "title" : "W3School jQuery Tutorial" }); });
attr() 的回調函數
jQuery 方法 attr(),也提供回調函數。回調函數由兩個參數:被選元素列表中當前元素的下標,以及原始(舊的)值。然后以函數新值返回您希望使用的字符串。
下面的例子演示帶有回調函數的 attr() 方法:
實例
$("button").click(function(){ $("#w3s").attr("href", function(i,origValue){ return origValue + "/jquery"; }); });
jQuery - 添加元素
通過 jQuery,可以很容易地添加新元素/內容。
添加新的 HTML 內容
我們將學習用於添加新內容的四個 jQuery 方法:
- append() - 在被選元素的結尾插入內容
- prepend() - 在被選元素的開頭插入內容
- after() - 在被選元素之后插入內容
- before() - 在被選元素之前插入內容
jQuery append() 方法
jQuery append() 方法在被選元素的結尾插入內容。
實例
$("p").append("Some appended text.");
jQuery prepend() 方法
jQuery prepend() 方法在被選元素的開頭插入內容。
實例
$("p").prepend("Some prepended text.");
通過 append() 和 prepend() 方法添加若干新元素
在上面的例子中,我們只在被選元素的開頭/結尾插入文本/HTML。
不過,append() 和 prepend() 方法能夠通過參數接收無限數量的新元素。可以通過 jQuery 來生成文本/HTML(就像上面的例子那樣),或者通過 JavaScript 代碼和 DOM 元素。
在下面的例子中,我們創建若干個新元素。這些元素可以通過 text/HTML、jQuery 或者 JavaScript/DOM 來創建。然后我們通過 append() 方法把這些新元素追加到文本中(對 prepend() 同樣有效):
實例
function appendText() { var txt1="<p>Text.</p>"; // 以 HTML 創建新元素 var txt2=$("<p></p>").text("Text."); // 以 jQuery 創建新元素 var txt3=document.createElement("p"); // 以 DOM 創建新元素 txt3.innerHTML="Text."; $("p").append(txt1,txt2,txt3); // 追加新元素 }
jQuery after() 和 before() 方法
jQuery after() 方法在被選元素之后插入內容。
jQuery before() 方法在被選元素之前插入內容。
實例
$("img").after("Some text after");
$("img").before("Some text before");
通過 after() 和 before() 方法添加若干新元素
after() 和 before() 方法能夠通過參數接收無限數量的新元素。可以通過 text/HTML、jQuery 或者 JavaScript/DOM 來創建新元素。
在下面的例子中,我們創建若干新元素。這些元素可以通過 text/HTML、jQuery 或者 JavaScript/DOM 來創建。然后我們通過 after() 方法把這些新元素插到文本中(對 before() 同樣有效):
實例
function afterText() { var txt1="<b>I </b>"; // 以 HTML 創建新元素 var txt2=$("<i></i>").text("love "); // 通過 jQuery 創建新元素 var txt3=document.createElement("big"); // 通過 DOM 創建新元素 txt3.innerHTML="jQuery!"; $("img").after(txt1,txt2,txt3); // 在 img 之后插入新元素 }
致謝:感謝您的耐心閱讀!