jQuery不支持使用firefox

时间:2012-08-14 12:43:40

标签: jquery firefox prepend

我的结构设置如下:

<div id="container">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
</div>

在某些时候,我想在容器中添加更多“孩子”。

$("#container").prepend('<div class="child"></div>');

除Firefox外,所有浏览器均可正常使用。 Firefox 追加新孩子。因此,由于在页面加载时使用相同的代码,因此子项实际上是颠倒的。

我尝试过使用.innerHTML,.before(),使用.html(child + old_html)等等所有内容,但我不能让我的生活让Firefox正确地添加html。

如果有人可以帮我解决这个问题,请提前致谢。

编辑:添加缺失“

2 个答案:

答案 0 :(得分:2)

您的选择器字符串未关闭:

改变这个:

$("#container).prepend('<div class="child"></div>');

要:

$("#container").prepend('<div class="child"></div>');

答案 1 :(得分:0)

经过一些研究,看来prepend()没有错,但Firefox实际上在json中反转了我的键。为了说明发生的事情,我的json看起来像这样:

{"shouts":[
"12"{<some data concerning id=12 here>}, 
"11"{<some data concerning id=11 here>}, 
"10"{<some data concerning id=10 here>},
etc ]}

Chrome和所有其他浏览器在循环中颠倒了这个顺序,因为他们可能将“12”,“11”和“10”作为数组中的键。在循环时,这将产生10,11和12.但是Firefox没有这样做,这导致了逆转。

解决方法是从json中删除ID(这使得行为统一,即所有浏览器现在以相反的顺序显示它),然后再次为json反转顺序,这将生成:

{"shouts":[
{<some data concerning id=10 here>}, 
{<some data concerning id=11 here>}, 
{<some data concerning id=12 here>},
etc ]}

解决了这个问题! (现在可以从example.php中看到。)感谢大家的帮助。