2010-07-27 22 views
0

例(在Firefox)工作: http://progamonth.com/files/tablestestfile.htmljQuery的 - 動態錶行不會在IE /歌劇

我不能選擇動態獲取添加到表元素。這在Firefox中有效,但在IE和Opera中失敗。這裏發生了什麼?

DOM代碼:

<table id = "myTable"> 
<thead> 
<tr><th>1</th><th>2</th><th>3</th> 
</thead> 
<tbody> 
</tbody> 
</table> 
<select id = "select1" class = "hidden"> 
<option>1</option> 
<option>2</option> 
<option>3</option> 
</select> 
<select id = "select2" class = "hidden"> 
<option>A</option> 
<option>B</option> 
<option>C</option> 
</select> 

Javascript: 

$(document).ready(function(){ 
    $('#myTable tbody').append(generate()); 
}); 

function generate() 
{ 
    var $row = $('<tr>'); 

    var selects = [$('#select1'), 
        null, 
        $('#select2')]; 

    for(var i in selects) 
    { 
     var $td = $('<td></td>'); 

     if(selects[i] != null) 
     { 
      var $select = selects[i].clone().show().removeAttr("id"); 

      $select.find('option:first').before($('<option>')); 
      $select.val(""); 
      $td.append($select); 
     } 

     $row.append($td); 
    } 

    return $row; 
} 
+0

你想什麼目標用這個來完成? – Patrick 2010-07-27 05:06:37

回答

1

我只是想你的代碼。看起來,在IE中,隱藏的CSS類(display:none)中設置的顯示屬性不會被覆蓋,即使你調用了show()。無論是去除CSS類克隆的選擇元素,或明確設置了「顯示」屬性設置爲「塊」 /「內聯」的工作原理:

$select.removeClass('hidden'); 

(或)

$select.css({display:'block'});