2014-09-29 98 views
3

我一直在向表中的每一行動態添加複選框 - datatables.net。但是,當我檢查框時,html不顯示任何檢查的屬性,然後不允許我只關注具有複選框的行。如果我選中了checked屬性的複選框,那麼是的,checked屬性是可見的。這裏的代碼顯示如何,我想檢查檢查屬性...沒有選中屬性的複選框

 var filtered_rows = example_data_table._('tr', {"filter":"applied"}); 

     $.each(filtered_rows, function(i, el){ 
      // If not checked, do not include 
      if(!$(el[0]).is(':checked')){ 
       console.log(el[0]); 
       return true; 
      }else{ 
       window.alert("HIT"); 
      } 
     ... 

和下面的是我如何追加元素到datatables.net表...

 var checkbox = $("<input type='checkbox' 
          id='checkbox_" + o.example_id + "' />"); 

     ... 

     tmp = [checkbox[0].outerHTML, 
     ...]; 
     table_data.push(tmp); 

     ... 

     example_data_table.fnClearTable(false); 
     example_data_table.fnAddData(table_data); 

在控制檯中,我得到的是這樣的消息n次:

<input type="checkbox" id="checkbox_3895">     examples.php:189 


我猜,我不知道爲什麼永遠不會包含checked屬性,即使我有CH ecked複選框?

+6

checked屬性不應顯示,你只是沒有找到正確的位置,它是**被更改的**屬性**,並且在標記中不可見。 – adeneo 2014-09-29 19:59:10

+1

@adeneo是正確的,如果你添加它像這樣你會看到當你檢查/取消選中時,檢查的屬性不會改變。在這裏試試http://jsfiddle.net/pm9rat56/ – 2014-09-29 20:13:02

+0

謝謝,這絕對有道理 – QuintoViento 2014-09-29 20:21:20

回答

3

的HTML標記屬性<input checked=""實際上並不旨在顯示在運行時刻元素的狀態,但是來定義它的默認狀態時,頁面呈現首次

MDN < input > docs狀態:

檢查:

當類型屬性的值是無線電或複選框,此布爾屬性的存在指示控制被默認選中;否則會被忽略。

只有你不同的選中狀態,可目標JS的DOM屬性checked

document.getElementById('myInput').checked; //(true/false) 

或CSS僞:checked

#myInput:checked { 
}