Javascript jQuery 1.8.0-appendTo()在IE8中不起作用

Javascript jQuery 1.8.0-appendTo()在IE8中不起作用,javascript,jquery,internet-explorer,internet-explorer-8,Javascript,Jquery,Internet Explorer,Internet Explorer 8,我有一个带有和的。现在在$(document).ready()中,我有一个函数,目标是,并对servlet进行ajax调用。生成的Json随后将逐行和逐单元格插入tbody 下面是一个代码片段 var tbody = $('#topten'); $.each(responseJson, function(i, obj) { var trkey = $('<tr>'); trkey.appendTo(tbody); $

我有一个带有
。现在在
$(document).ready()中,我有一个函数,目标是
,并对servlet进行ajax调用。生成的
Json
随后将逐行和逐单元格插入tbody

下面是一个代码片段

    var tbody = $('#topten');
    $.each(responseJson, function(i, obj) {

        var trkey = $('<tr>');
        trkey.appendTo(tbody);

        $.each(obj, function(K, V) {
            if (K == 'abc') {
                var td = $('<td>');
                td.appendTo(trkey);
            }

       });

    });
正好是

this.appendChild( elem );
我的应用程序在IE9、10FF、Chrome上都能完美运行,但不是IE8

我可以问一下这个问题是否有解决办法吗

谢谢

EDIT:意识到是我将()附加到td中的输入框导致了问题,这个代码片段很好。所以问题就结束了。抱歉。

仅供参考:IE8、IE7和IE6不允许对该元素进行任何修改,包括
.append()
.appendTo()
,因为它们不是标准或正确的DOM元素,因此被视为文本。确保关闭元素,如

说明:


.appendTo()
如果传递用新窗口创建的DOM元素,效果会非常好。但如果从原始窗口(html字符串或之前使用$()创建)创建,则失败。

仅在重新定义此部分后尝试点击DOM:

var trkey = '<tr>';
$.each(obj, function (K, V) {
    if (K == 'abc') {
        trkey = trkey + '<td></td>';
    }
});
trkey = trkey + '</tr>';
$(trkey).appendTo(tbody);
var-trkey='';
$。每个(对象、功能(K、V){
如果(K==“abc”){
trkey=trkey+'';
}
});
trkey=trkey+'';
$(trkey).附件(tbody);

看起来您的trkey的值不正确,IE不喜欢。为什么要使用
.val()
?如果试图设置元素的内容,请使用
.text()
.html()
。如果移动
trkey.appendTo(tbody),是否有帮助
to在
$之后。each()
?jQuery的哪个版本?@adeneo,请阅读标题。是否有解决方法?除了创建新窗口之外?
,因为它们不是标准或正确的DOM元素,因此被视为文本-你在说什么?所有这些都没有意义。没有任何东西被视为文本;一切都在使用jQueryobjects@Ian当您在DOM中创建元素时,如果它们没有关闭,IE8、IE7和IE6将不允许对该元素进行任何修改,包括
.append()
.appendTo()
,我正在谈论这一点they@DKM但是你在哪里看到元素没有被关闭?@Ian-你搞定了,这毫无意义?
var trkey = '<tr>';
$.each(obj, function (K, V) {
    if (K == 'abc') {
        trkey = trkey + '<td></td>';
    }
});
trkey = trkey + '</tr>';
$(trkey).appendTo(tbody);