JQuery中的html()、text()、val()区别示例介绍
1.html
html():取得第一个匹配元素的html内容。这个函数不能用于xml文档。但可以用于xhtml文档
html(val):设置每一个匹配元素的html内容。这个函数不能用于xml文档。但可以用于xhtml文档。
2.text
text():取得所有匹配元素的内容。
结果是由所有匹配元素包含的文本内容组合起来的文本。这个方法对html和xml文档都有效。
text(val):设置所有匹配元素的文本内容
与 html() 类似, 但将编码 html (将 "<" 和 ">" 替换成相应的html实体).
3.val
val():获得第一个匹配元素的当前值。
val(val):设置每一个匹配元素的值。
上面的内容是在jquery的帮助文档里拷贝的,也都不废话多说了。下面是自己做的一些练习,代码如下:
在做练习的时候我发现了html和text的另一个不同的地方
html()去元素的内容的时候,能将所选定的元素下面的格式也取到了。
如:<p id="pshow"><b><i>write less do more</i></b></p>
如果我们用var strhtml = $("#pshow").html();取的话,
结果是:<b><i>write less do more</i></b>
如果我们用var strhtml2 = $("#pshow b i").html();取的话
结果是write less do more
而text没有第一种情况,
如果我们var strtext = $("#pshow").text();取的话
结果是write less do more
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%> <% string path = request.getcontextpath(); string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/"; %> <!doctype html public "-//w3c//dtd html 4.01 transitional//en"> <html> <head> <base href="<%=basepath%>"> <script src="js/jquery.js" type="text/javascript"></script> <!-- <script src="https://code.jquery.com/jquery-latest.js"></script> --> <title> 获取或设置元素的内容</title> <style type="text/css"> body{font-size:15px;text-align:center} p{border:solid 0px #666;padding:5px;width:220px;margin:5px} </style> <script type="text/javascript"> $(function() { var strhtml = $("#pshow").html();// 获取html 内容(包含p下面的两个格式) var strhtml2 = $("#pshow b i").html(); //获取html内容 var strhtml3 = $("p").html(); var strtext = $("#pshow").text();// 获取文本内容 var strtext2 = $("p").text(); $("#phtml").html(strhtml);// 设置html 内容 $("#phtml2").html(strhtml2); //设置html内容 $("#phtml3").html(strhtml3); //设置html内容 $("p").html(strhtml); $("#ptext").text(strtext);// 设置文本内容 $("#ptext2").text(strtext2);// 设置文本内容 $("a").text(strtext); $("select").change(function() { // 设置列表框change 事件 // 获取列表框所选中的全部选项的值 alert($("select").val()); var strsel = $("select").val().join(","); $("input").val(strsel); // 显示列表框所选中的全部选项的值 }) }) </script> </head> <body> <table border="1" bordercolor="#a9a9a9" cellspacing="0"> <tr><td>******************************</td><td>*******************************************</td></tr> <tr> <td><p id="pshow"><b><i>write less do more</i></b></p></td> <td>这是原内容</td> </tr> <tr> <td><p id="pshow"><b><i>write xxxx do xxxx</i></b></p></td> <td>这是原内容</td> </tr> <tr><td>******************************</td><td>*******************************************</td></tr> <tr> <td><p id="phtml">1</p></td> <td>获取原内容(连带内容的格式)后以html方式输出</td> </tr> <tr> <td><p id="phtml2">2</p></td> <td>获取原内容(不带内容的格式)后以html方式输出</td> </tr> <tr> <td><p id="phtml3">3</p></td> <td>获取原内容(获取第一个匹配元素的内容)后以html方式输出</td> </tr> <tr> <td><p></p></td> <td>html方式设置段落的文本</td> </tr> <tr> <td><p></p></td> <td>如果这个也有内容了,就是设置每个匹配元素的内容</td> </tr> <tr><td>******************************</td><td>*******************************************</td></tr> <tr> <td><p id="ptext">4</p></td> <td>获取原内容后以text方式输出</td> </tr> <tr> <td><p id="ptext2"></p></td> <td>获取原内容(获取所有匹配元素的内容)后以text方式输出</td> </tr> <tr> <td><a></a></td> <td>text方式设置段落的文本</td> </tr> <tr> <td><a></a></td> <td>如果这个也有内容了,就是设置每个匹配元素的内容</td> </tr> <tr><td>******************************</td><td>*******************************************</td></tr> <tr> <td> <select multiple="multiple"style="height:96px;width:85px"> <option value="1">item 1</option> <option value="2">item 2</option> <option value="3">item 3</option> <option value="4">item 4</option> <option value="5">item 5</option> <option value="6">item 6</option> </select> <select> <option value="7">item 7</option> <option value="8">item 8</option> <option value="9" selected>item 9</option> </select> </td> <td> </td> </tr> <tr> <td><input ></input></td> <td><input ></input></td> </tr> </table> </body> </html>
大家也都可以自己去验证下,上面是我做的实验,我用的jquery是1.6