2011-08-22 76 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,看看你的代码创建的节点结构。 –