我有以下HTML和后续的jQuery,它们在检索到JSON请求之后追加了相关的HTML元素。

此实现可在Google Chrome + Android浏览器+ Safari中使用,但不会在Firefox或Internet Explorer 9中填充数据。

**在Chrome,Android浏览器,Firefox 4 ...中可以使用...在Firefox 3.x和IE中不能使用。

静态HTML:

   <header class=line>
                       <div class="unit size3of4">
                            <h2 class="fullname"></h2>
                            <h4 class="nickname"></h4>
                       </div>
   </header>


jQuery代码:

<script>
function load_user_info() {
        var content_url = 'rest.api.url.com';
        $.getJSON(content_url, {id:'11xx1122xx11'}, function(data){
            console.log(data);
            $.each(data, function(key, value) {
                if (key == "fullname") {$('.fullname').append(value);}
                else if (key == "nickname") {$('.nickname').append(value);}
            });
         });
    }

 load_user_info();
 </script>


关于浏览器之间的行为有些困惑。我可以保证JSON请求返回两个变量:全名和昵称,并已确认

在使用FireBug插件的Firefox中,我看到了console.log(data)的结果。
在Chrome浏览器中,在JSON请求之后,我看到了console.log(data)的结果以及HTML中全名和昵称的成功显示。

使用jQuery 1.6.1如果有帮助...

JSON输出:

 {"fullname":"johnny fartburger", "nickname":"jf"}

最佳答案

你的所作所为让我有些困惑。我认为以下代码:

$.each(data, function (key, value) {
    if (key == "fullname") {
        $('.fullname').append(value);
    } else if (key == "nickname") {
        $('.nickname').append(value);
    }
});


可以更容易地表示为:

$('.fullname').append(data.fullname);
$('.nickname').append(data.nickname);


我不知道这是否可以解决您的问题,但肯定会有所改善。

关于javascript - jQuery追加在IE/Firefox中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6123053/

10-09 06:28
查看更多