我正在尝试序列化一系列div中包含的数据。
经过一番研究后,我正在使用这个功能;
function save_values() {
var data = new Array();
$('.category-name').each(function() {
data.push({ 'name':$(this).attr("name"), 'value':$(this).attr("id")});
});
alert(data);
};
我的div设置如下;
<div class = "category">
<div class = "category-number">
<span>1.0</span>
<div class = "category-name">
<span>Content</span>
</div>
</div>
</div>
<div class = "category">
<div class = "category-number">
<span>2.0</span>
<div class = "category-name">
<span>Content2</span>
</div>
</div>
</div>
我正在采用一种方法来有效地捕获category-name div中的内容,以及category-number div中的内容。我宁愿保留每个category-div的顺序和其中包含的数据。因此,再次为'.category-number'调用.each函数是不可取的。
有人能建议一种方法来按顺序捕获category-number和category-name div中的所有数据吗?
警报仅用于测试,但是有更好的方法在数组中显示值吗?
感谢。
答案 0 :(得分:2)
id
元素没有category-name
或名称属性,我可以理解您尝试从category-number
和category-name
元素中获取值。< / p>
试
function save_values() {
var data = $('.category').map(function () {
var $this = $(this),
$cn = $(this).find('.category-number');
return {
'name': $.trim($cn.children('span').text()),
'value': $.trim($cn.find('.category-name span').text())
};
}).get();
console.log(data);
};
演示:Fiddle