我需要先将数组保存到表行属性,然后尝试将属性转换回表
var arr_Rates = new Array();
arr_Rates.push({Single:"value",Double: "value"});
$('table tr').attr("arr_Rates", arr_Rates);
当我从属性检索数据到array时,我得到了attr值,但是我无法将其转换为array并遍历值
var arr_Rates=$('table tr').attr("arr_Rates");
$.each(arr_Rates, function( index, value ) {
console.log(value);
})
以上代码给出此错误:
不能使用'in'运算符在[object Object]中搜索'length'
我也尝试过
var array = $.map(arr_Rates, function(value, index) {
return [value];
});
然后
var arr = jQuery.makeArray( arr_Rates );
和JSON.parse(arr_Rates )
但还是同样的错误,请建议我一些解决方法。
答案 0 :(得分:0)
鉴于您要在元素内存储对象数组,因此使用data()
更为有意义,因为它省去了序列化/反序列化值的麻烦。试试这个:
// set:
var ratesInput = [{
Single: "value single",
Double: "value double"
}];
$('table tr').data('rates', ratesInput);
// get:
var ratesOutput = $('table tr').data('rates');
ratesOutput.forEach(function(value, index) {
console.log(value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>Foo</td>
</tr>
</table>