最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jquery判斷復(fù)選框選中狀態(tài)以及區(qū)分attr和prop

 更新時(shí)間:2015年12月18日 09:03:54   作者:Sunshine_lily  
這篇文章主要介紹了jquery判斷復(fù)選框選中狀態(tài)以及區(qū)分attr和prop,感興趣的小伙伴們可以參考一下

最近項(xiàng)目中需要用jquery判斷input里checkbox是否被選中,發(fā)現(xiàn)用attr()獲取不到復(fù)選框改變后的狀態(tài),最后查資料發(fā)現(xiàn)jQuery 1.6以后新增加了prop()方法,借用官方的一段描述就是:

The difference between attributes and properties can be important in specific situations. Before jQuery 1.6, the .attr() method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior. As of jQuery 1.6, the .prop() method provides a way to explicitly retrieve property values, while .attr() retrieves attributes.
上面翻譯過來大概就是:prop()處理來自節(jié)點(diǎn)對象自帶的屬性,它包含了很多原生的property;而attr()來自對象的attributes,可能是我們在元素節(jié)點(diǎn)上添加屬性節(jié)點(diǎn)才會有的。當(dāng)然,前面的翻譯僅代表本人觀點(diǎn),如有錯(cuò)誤,可以提出來~~

簡單的來說就是:

對于HTML元素本身就帶有的固有屬性,在處理時(shí),使用prop方法。
對于HTML元素我們自己自定義的DOM屬性,在處理時(shí),使用attr方法。
上面的描述也許有點(diǎn)模糊,引用一些大神的博客內(nèi)容加上我的測試,舉幾個(gè)例子就知道了。

 第一個(gè)例子:元素的固有屬性以及自定義屬性說明

<a href="  這個(gè)例子里<a>元素的DOM屬性有“href、target和class",這些屬性就是<a>元素本身就帶有的屬性,也是W3C標(biāo)準(zhǔn)里就包含有這幾個(gè)屬性,或者說在IDE里能夠智能提示出的屬性,這些就叫做固有屬性。處理這些屬性時(shí),建議使用prop方法。

<a href="#" id="link1" action="delete">刪除</a>
這個(gè)例子里<a>元素的DOM屬性有“href、id和action”,很明顯,前兩個(gè)是固有屬性,而后面一個(gè)“action”屬性是我們自己自定義上去的,<a>元素本身是沒有這個(gè)屬性的。這種就是自定義的DOM屬性。處理這些屬性時(shí),建議使用attr方法。使用prop方法取值和設(shè)置屬性值時(shí),都會返回undefined值。

第二個(gè)例子:prop()與attr()在表單應(yīng)用上的區(qū)別

先來看一段用attr()方法代碼:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title> attr() vs prop()</title>
 </head>
 <body>
  <h3>用attr()判斷是否選中</h3>
  <input type="checkbox" id="input01" />我是第一個(gè)復(fù)選框A<br />
  <input type="checkbox" id="input02" checked="checked"/>我是第二個(gè)復(fù)選框B<br />
  <input type="button" id="button01" value="獲取A的checked狀態(tài)" />
  <input type="button" id="button02" value="獲取B的checked狀態(tài)" />
  <script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript">
   $(function(){
    $("#button01").click(function(){
     var $state01=$("#input01").attr("checked");
     alert($state01);
    })
    $("#button02").click(function(){
     var $state02=$("#input02").attr("checked");
     alert($state02);
    })
   })
  </script>
 </body>
</html>

上面這段程序的測試結(jié)果是:

從動態(tài)圖可以看出來,用attr()獲取不到用戶選中的狀態(tài),它只返回表單的初始值。

 再來看一段用prop()方法代碼:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title> attr() vs prop()</title>
 </head>
 <body>
  <h3>用prop()判斷是否選中</h3>
  <input type="checkbox" id="input01" />我是第一個(gè)復(fù)選框A<br />
  <input type="checkbox" id="input02" checked="checked"/>我是第二個(gè)復(fù)選框B<br />
  <input type="button" id="button01" value="獲取A的checked狀態(tài)" />
  <input type="button" id="button02" value="獲取B的checked狀態(tài)" />
  <script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript">
   $(function(){
    $("#button01").click(function(){
     var $state01=$("#input01").prop("checked");
     alert($state01);
    })
    $("#button02").click(function(){
     var $state02=$("#input02").prop("checked");
     alert($state02);
    })
   })
  </script>
 </body>
</html>

上面這段程序的測試結(jié)果是:

從動態(tài)圖可以看出來,用prop()可以實(shí)時(shí)獲取用戶的選中與取消操作狀態(tài)。

因此我總結(jié)的差別就是:property記錄的值會按照用戶操作實(shí)時(shí)更新,而attribute記錄的都是初始值,僅代表本人觀點(diǎn)。

希望本文所述對大家學(xué)習(xí)javascript程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論

綦江县| 遂川县| 和田县| 花莲市| 古田县| 环江| 南充市| 绍兴市| 九寨沟县| 长春市| 屯昌县| 镇康县| 北京市| 龙岩市| 来宾市| 克什克腾旗| 巴彦淖尔市| 临夏市| 怀仁县| 平遥县| 手游| 呼玛县| 明溪县| 永和县| 上高县| 海门市| 政和县| 保亭| 克东县| 岳普湖县| 青海省| 永寿县| 白城市| 泽州县| 柳江县| 庐江县| 安庆市| 鄂伦春自治旗| 上犹县| 康保县| 龙岩市|