我使用此代码来收集数据(),但它不在铬工作,因为它是在相反的顺序,我怎样才能使结果匹配。jQuery每个数据()返回不同的结果Firefox与Chrome,如何解决?
这是相同的代码。我只是通过chrome/firefox获得不同的resutls,这使得它不能在Chrome中运行。
/* get checked filters */
strJson = '{';
jQuery('.uag-filter-option').each(function() {
if (jQuery(this).hasClass('checked')) {
jQuery.each(jQuery(this).data(), function(i, v) {
strJson += i + ":'" + v + "',";
});
}
});
strJson = strJson.slice(0, -1);
strJson += '}';
alert(strJson);
在Firefox中,我得到:
{sort:\'sortbydate\',method:\'sortby\'}
在Chrome中,我得到:
{method:\'sortby\',sort:\'sortbydate\'}
我怎样才能得到同样的结果在Chrome作为在Firefox?我认为它是如何在不同的浏览器中处理data()?
下面是一个包含锚点的数据:
<a href="#" class="uag-filter-option" data-method="sortby" data-sort="sortbydate">date</a>
有什么想法吗?
似乎:
当访问使用jQuery.data()数据attribues,它们的顺序在Firefox和IE被反转。如何使它在所有浏览器中相匹配?
你不应该担心按键顺序JSON对象的,因为你应该根据关键 –
所以,你所得到的相同的数据只是元素以不同的顺序检索的价值?如果是这样,那很重要,只需对结果对象键进行排序即可。 –
如果您没有通过索引号访问对象值,为什么它的顺序很重要? 'obj.method'是一样的。 – sbeliv01