jQuery追加不在IE8中工作

$('#buttonadd').click(function(){ if ($counter < 10) { $counter++; $countonlyadd++; $('#buttondiv').append('UNDOHNEODER [X]'); }else{ } $('#send_count').val($countonlyadd); }); 

我的代码在Internet Explorer中不起作用,我不知道为什么。 所有其他浏览器都可以,但IE不是。 他甚至没有添加1个文本框。

你的问题是IE兼容模式。 这在IE9 http://jsfiddle.net/NP9pG/3/和firefox中运行良好但是当你切换到IE兼容模式时它不起作用。

 

但这个http://jsfiddle.net/NP9pG/4/将在IE兼容模式下正常工作

 

你的问题是你的html标记建议进行以下更改

 

而是将项目附加到table而不是div元素

因此js代码:

 $('#tableData').append(' [X]'); 

希望有所帮助

看起来你在任何浏览器中直接添加了一个tr而不是有效的html。 其他浏览器不会喊,但IE会。 试试这个。

工作演示

标记更改

 

JS改变了

 $('#buttonadd').click(function(){ if ($counter < 10) { $counter++; $countonlyadd++; $('#buttondiv table').append(' [X]'); }else{ } $('#send_count').val($countonlyadd); }); 

看来你正在向div添加一个TR,这可能是你的问题。 您应该将它附加到TABLE的TBODY中。

问题是:

  • 你有$ counter定义了吗?
  • 你有$ countonlyadd定义吗?
  • 你在#buttondiv中有< table >包装器吗?

想想这些问题,如果结果是“不”,那就是问题所在

如果你有< table >包装器,请更改

 $('#buttondiv'). 

 $('#buttondiv table'). 

如果你首先创建元素,也许它会有所帮助。然后为你的行,列,文本框等创建一个对象。而不是将它们相互追加。 最后将行添加到div中。 除此之外,将一行添加到div而不是表格中有点奇怪……