在项目开发中,写jQuery代码有时候会搞混淆一下东西,现在写一下demo来列出jQuery的.html(),.text(),.val()的区别。
1. html()取得第一个匹配元素的内容,简单来说就是所取得的标签所包含的所有东西。
假如括号中有带val的话,最简单的理解就是将上一步取得的内容全部替换成括号中val,下面看demo
1 <div id="divTest" value='2'> 2 这是div的内容! 3 <label id="lblText"> 4 这是label的内容! 5 </label> 6 <div id="divTest2"> 7 第二个div内容! 8 </div> 9 </div>
1 $("#divTest").html() //所取得内容:这是div的内容!<label id="lblText">这是label的内容!</label> <div id="divTest2">第二个div内容!</div>
1 $("#divTest").html("我要修改了!") //执行修改
上面修改之后,我们接着获取一下
1 $("#divTest").html() //所取得内容:我要修改了!
注:html()方法可以用于XHTML文档,但不能用于XML文档!
2.text():取得所有匹配元素的内容,结果是由所有匹配元素包含的文本内容组合起来的文本,同理,text(val)是设置所有匹配元素的文本内容
1 $("#divTest").text() //所取得内容:这是div的内容!这是label的内容!第二个div内容! 2 //可见所取得是标签内的东西,但不会取标签
注:这个方法对HTML和XML文档都有效
3.val()常用来操作标准的表单组件对象,如button,text,hidden
例如添加了一个select元素以及一个hidden的元素
1 <select id="selectVal"> 2 <option value="1" selected="selected">1</option> 3 <option value="2" >2</option> 4 </select> 5 <input type="hidden" id="hidVal" value="1"/>
现在我们来取一下他们的值
1 $("#selectVal").val() //取得值为:1 同理这个也是 $("#hidVal").val()
有时候开发的时候会在一个div内设置一个value的属性,那么我们在取值的时候可以用这样
首先jquery的attr()方法允许两个参数,如果值给一个参数则返回的是元素的属性的值,两个参数可以设置一个元素属性的值为第二个参数。2、给div元素属性赋值的代码如下:
<
script
type
=
"text/javascript"
>
$('#div1').attr('class','baidu');
$('#div2').attr('value','2');
</
script
>
效果
<
div
id
=
"div1"
class
=
"baidu"></div>
<
div
id
=
"div2"
value=
"2"></div>
html()可以覆盖原内容
test() 获取元素下所有内容,包括html,直到元素结束
val()获取元素value的值