簡單的說:html()和text()的區別主要在于是否包含標簽。而val()針對的是表單元素。
但是有時還是不是那么太清晰。
html(),val(),text()都分為有參和無參。
舉例說明它們的不同之處:
html()在沒有參數的情況下,取得第一個匹配元素的內容。必須要注意的是,即使匹配多個,也只能取得匹配的第一個元素。
如:
<body><p>你選中這段文字后,看看它們的文本顏色和背景色,就能明白::selection的作用。</p><h3>選中下面的文字,看看它的顏色</h3><h3>選中下面的文字,看看它的顏色</h3><h3>選中下面的文字,看看它的顏色</h3><input type="text" value="aaa"></body></html><script src="../js/jquery-1.11.2.min.js"></script><script>var con = $("p").nextAll("h3");console.log(con.html());</script>
此處的con匹配的3個h3元素,但是只會打印出第一個h3的內容。
如果我們此處換成text();那么會打印出三個h3的內容。
如果帶參數的話,con.html(“aaa”);和con.text(“aaa”);效果一樣,都能改變3個h3的內容。
不過如果con.html("<span>'aaa'</span>")和con.text("<span>'aaa'</span>");使用html會將span解析為標簽,而text,則會將作為字符串插入。
<body><p>你選中這段文字后,看看它們的文本顏色和背景色,就能明白::selection的作用。</p><h3><span>選中下面的文字,看看它的顏色</span></h3><h3><span>選中下面的文字,看看它的顏色</span></h3><input type="text" value="aaa"></body></html><script src="../js/jquery-1.11.2.min.js"></script><script>var con = $("p").nextAll("h3");console.log(con.html());console.log(con.text());</script>
html()會將標簽也取出,但是text()只會獲取文本部分。
再看val();
<body><input type="text" value="aaa"/><input type="button" value="按鈕"/>選擇性別:<input type="radio" name="sex" checked value="男"><label>男</label><input type="radio" name="sex" value="女"><label>女</label><br><br>選擇地區:<select style="width: 150px"><option value="1">上海</option><option value="2">杭州</option><option value="3">南京</option><option value="4">麗江</option></select></body></html><script src="../js/jquery-1.11.2.min.js"></script><script>$(function () {console.log($("input:text").val());console.log($("input:button").val());console.log($("input[name='sex']:checked").val());console.log($("select option:selected").text());});</script>
此處,可以關注下如何獲取單選按鈕的值,如何獲取選中的select的值。
需要注意的是,option的value并不是顯示在頁面上的內容,因為設置或者是獲取option的頁面內容,需要使用text(),當然使用html()亦可。
關于三者的區別小結
1. .val()方法和.html()相同,如果其應用在多個元素上時,只能讀取第一個表單元素的"value"值,但是.text()和他們不一樣,如果.text()應用在多個元素上時,將會讀取所有選中元素的文本內容。
2 .html(),.text(),.val()都可以使用回調函數的返回值來動態的改變多個元素的內容。
以上所述是小編給大家介紹的jQuery中text() val()和html()的區別實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答