jQuery追加不在IE8中工作

时间:2011-08-22 14:55:12

标签: jquery internet-explorer-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个文本框。

5 个答案:

答案 0 :(得分: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>');

希望有所帮助

答案 1 :(得分:4)

您似乎直接在任何浏览器中添加了tr,而这些html不是有效的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);
        });

答案 2 :(得分:3)

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

答案 3 :(得分:0)

问题是:

  • 您是否定义了$ counter?
  • 您是否定义了$ countonlyadd?
  • 您有&lt; table&gt;包装在#buttondiv?

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

如果你有&lt; table&gt;包装,改变

$('#buttondiv').

$('#buttondiv table').

答案 4 :(得分:0)

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