将属性转换回数组

时间:2018-08-30 12:12:54

标签: jquery arrays attributes

我需要先将数组保存到表行属性,然后尝试将属性转换回表

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 )

但还是同样的错误,请建议我一些解决方法。

1 个答案:

答案 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>