checkbox屬性checked="checked"已有,但卻不顯示打勾的解決辦法


主要原因是:jquery版本問題。

1、attr():

獲取匹配的元素集合中的第一個元素的屬性的值 或 設置每一個匹配元素的一個或多個屬性。

 在jQuery 1.6中,當屬性沒有被設置時候,.attr()方法將返回undefined。若要檢索和更改DOM屬性,比如元素的checked, selected, 或 disabled狀態,請使用.prop()方法。

2、removeAttr(): 

從每一個匹配的元素中刪除一個屬性

1.6以下版本在IE6使用JQuery的removeAttr方法刪除disabled是無效的。解決的方法就是使用$("XX").prop("disabled",false);
1.7版本在IE6下已支持刪除disabled。

3、prop():

獲取匹配的元素集中第一個元素的屬性(property)值或設置每一個匹配元素的一個或多個屬性。

隨着一些內置屬性的DOM元素或window對象,如果試圖將刪除該屬性,瀏覽器可能會產生錯誤。jQuery第一次分配undefined值的屬性,而忽略了瀏覽器生成的任何錯誤。

4、舉例說明:

HTML:

 1 <table class="table table-striped table-hover auth-table" id="auth-table">
 2 <tbody>
 3 <tr>
 4 <td>
 5 <input type="checkbox" name="user">
 6 <img src="../../asset/img/userHead.png" class="user-head">
 7 <span>艾祖青1</span>
 8 </td>
 9 <td>
10 <span class="user-email">zuqing.ai@changhong.com</span>
11 </td>
12 </tr>
13 <tr>
14 <td>
15 <input type="checkbox" name="user">
16 <img src="../../asset/img/userHead.png" class="user-head">
17 <span>艾祖青1</span>
18 </td>
19 <td>
20 <span class="user-email">zuqing.ai@changhong.com</span>
21 </td>
22 </tr>
23 </tbody>
24 </table>

 

js:

 

1        //人員的全選和反選;
2             function wholeChecked(){
3                 $("table#auth-table input[type='checkbox']").prop("checked","checked");
4             }
5             function wholeCheckedCancel() {
6                 $("table#auth-table input[type='checkbox']").removeAttr("checked");
7             }

 

以上js代碼中的設置多選框的checked屬性,在jquery1.6及以下版本時,設置用attr();但在比較高版本下,就只有用prop()來進行設置,如果按attr來設置,會出現

在第一次點擊全選按鈕,所有checkbox被選中之后,取消全選,又全選時,就會看到checked屬性在改變,但是復選框中的鈎不顯示,因為在低版本中,若元素本身沒有設置相應的屬性,.attr()會返回undfined。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM