jQuery在IE7中的表之后插入一个表对象

时间:2012-08-30 16:00:37

标签: javascript jquery

也许我没有清楚地解释我的问题,如果你认为我的问题没有必要,至少告诉我哪里可以看到类似的解决方案,请!从我的角度来看,应该解决IE7的可比性问题。

我对如何在IE7中通过jQuery在现有表(class ='a')之后插入表对象(class ='b')有疑问(在IE8或Chrome中一切都很好)。有人可以就下面的代码给我一些建议吗?

// This is the existing table
<table class='a' align="center">
<tr><th><label for="id_S">Number of modeled stages:</label></th><td><select name="S" id="id_S">
<option value="">Please choose</option>
<option value="2">2</option>
<option value="3">3</option>
</select></td></tr>
</table>   //I would like to insert a table class='b' right after this </table> tag

<script>
$(document).ready(function() {

$('<table class="b" border="0" align="center"><tr><th width="5">Matrix:</th></tr></table>').appendTo('.a'); //this works in IE8 but not in IE7

})
</script>

// The following code works in IE7, but it messed up the layout

<script>
$(document).ready(function() {

$('<table class="leslie" border="0" align="center"><tr><th width="5">Matrix:</th></tr></table>').appendTo('.a td:last');    //this works in IE7, once I changed it to tr:last, it does not work again.

})
</script>

更新

我尝试了一个更简单的案例。在IE7中,我能够看到警报消息,但无法看到添加的表行。似乎IE7无法显示额外的HTML表,但可以处理JavaScript代码。

<script>
$('<table class="b" border="0" align="center"><tr><th width="5">Lesile Matrix:</th></tr></table>').appendTo('.a');    
alert('s')
</script>

3 个答案:

答案 0 :(得分:1)

试试这个:

$('<table class="leslie" border="0" align="center"><tr><th width="5">Matrix:</th></tr></table>').insertAfter('.table');

答案 1 :(得分:0)

您的代码不对。首先,您没有具有“table”类的元素。所以这就是appendTo不起作用的原因。它有一类“a”。然后对于appendTo,您尝试添加的表不会以“</table>”结尾。此外,我接受了Abe的建议并将appendTo更改为insertAfter。

在此处查看您的固定代码:http://jsfiddle.net/YUCDf/1/

答案 2 :(得分:0)

你试过这样的吗?只是将整个标记存储在一个字符串中并附加到?

var x = '<table class="b" border="0" align="center"><tr><th width="5">Lesile Matrix:</th></tr></table>';
$('.a').append(x);

http://jsfiddle.net/nVFa5/