2011-08-22 119 views
8
$('#buttonadd').click(function(){ 
      if ($counter < 10) 
      { 
       $counter++; 
       $countonlyadd++; 
       $('#buttondiv').append('<tr><td><select class="combo" name="combo'+$counter+'" style="width: 60px;" size="1"><option>UND</option><option>OHNE</option><option>ODER</option></select></td><td><input type="text" name="textbox'+$counter+'" class="textbox" value="" /><a id="removetxt" class="removetxt" style="text-decoration: none;line-height: 3;" href="#">&nbsp;[X]</a></td></tr>'); 
      }else{ 
      } 
      $('#send_count').val($countonlyadd); 
     }); 

我的代碼在Internet Explorer中不工作,我不知道爲什麼。所有其他瀏覽器都可以,但IE不是。他甚至不添加1個文本框。jQuery append不能在IE8中工作

+0

你添加行成'div',沒有'table'包裝? –

+0

不只是將它命名爲$,沒有我沒有添加行 –

+0

它有點令人困惑,通常$ xxx變量用於jQuery對象,而不是像他正在使用的Number類型。 –

回答

8

亞問題是IE兼容模式。這工作正常IE9 http://jsfiddle.net/NP9pG/3/和Firefox,但當你切換到IE兼容模式不起作用。

<div id="buttondiv"> </div> 
<div id="send_count"></div> 
<input type="button" id="buttonadd" value="add" /> 

但這http://jsfiddle.net/NP9pG/4/將正常工作壽在IE兼容模式

<table id="buttondiv"> </table> 
<div id="send_count"></div> 
<input type="button" id="buttonadd" value="add" /> 

亞問題的建議做如下改變你的HTML標記

<div id="buttondiv"> 
    <table id="tableData"></table> 
</div> 

而追加項目到table而不是div元件

因此JS代碼:

$('#tableData').append('<tr><td><select class="combo" name="combo'+$counter+'" style="width: 60px;" size="1"><option>UND</option><option>OHNE</option><option>ODER</option></select></td><td><input type="text" name="textbox'+$counter+'" class="textbox" value="" /><a id="removetxt" class="removetxt" style="text-decoration: none;line-height: 3;" href="#">&nbsp;[X]</a></td></tr>'); 

希望幫助

+0

重點是我試過了,它不會在任何瀏覽器中追加任何東西,所以它#有點棘手 –

+0

看看這個提琴手:http://jsfiddle.net/NP9pG/4/它在firefox和IE中工作 – zulucoda

+0

謝謝!!!你真棒 –

0

的問題是:

  • 你有$計數器定義?
  • 你有$ countonlyadd定義?
  • 你有< table>在#buttondiv包裝?

想想這些問題,如果結果是 「沒有」,這就是問題所在

如果你有< table>包裝,改變

$('#buttondiv'). 

$('#buttondiv table'). 
+0

支票 - 支票和支票 –

+0

但你沒有包裝;) – genesis

+0

然後考慮追加到表格而不是直接div。 –

3

它看起來你正在追加一個TR到一個div,這可能是你的問題。您應該將其附加到TABLE的TBODY中。

0

也許如果你創建的元素first..so創建一個對象,你行,列,文本框等,而不是附加的是互相它幫助。最後追加行到你的div。除此之外,添加一行到一個div,而不是一個表,有點奇怪...

4

看起來像直接添加一個tr到哪個不是在任何瀏覽器中有效的HTML。其他瀏覽器不會喊,但IE會。嘗試這個。

工作demo

標記變化

<div id="buttondiv"> 
    <table></table> 
</div> 

JS變化

$('#buttonadd').click(function(){ 
      if ($counter < 10) 
      { 
       $counter++; 
       $countonlyadd++; 
       $('#buttondiv table').append('<tr><td><select class="combo" name="combo'+$counter+'" style="width: 60px;" size="1"><option>UND</option><option>OHNE</option><option>ODER</option></select></td><td><input type="text" name="textbox'+$counter+'" class="textbox" value="" /><a id="removetxt" class="removetxt" style="text-decoration: none;line-height: 3;" href="#">&nbsp;[X]</a></td></tr>'); 
      }else{ 
      } 
      $('#send_count').val($countonlyadd); 
     }); 
+0

不能在任何瀏覽器中使用.. sry –

+0

您是不是意思它它不附加在任何瀏覽器? – ShankarSangoli

+0

進入你最喜歡的瀏覽器的開發工具,Firebug,看看你的代碼創建的節點結構。 –