-2

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

我对如何通过 jQuery 在 IE7 中的现有表(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>
4

3 回答 3

1

尝试这个:

$('<table class="leslie" border="0" align="center"><tr><th width="5">Matrix:</th></tr></table>').insertAfter('.table');
于 2012-08-30T16:03:23.197 回答
0

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

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

于 2012-08-30T18:24:14.227 回答
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/

于 2012-08-30T19:55:09.393 回答