2016-03-11 58 views
1

我試圖序列化使用數據id屬性而不是僅僅id的可排序列表。jQuery序列化並返回JSON字符串

這是我的代碼:

var obj = $('.sortable li').map(function() { 
    return 'id=' + $(this).data("id"); 
}).get(); 

JSON.stringify(obj) 

返回:

["id=1", "id=2", "id=3"] 

我需要的是迴歸:

[{"id":1},{"id":2},{"id":3}] 

這裏是HTML的一部分:

<ul class="sortable"> 
    <li data-id="1">Item 1</li> 
    <li data-id="2">Item 2</li> 
    <li data-id="3">Item 3</li> 
    <li data-id="4">Item 4</li> 
    <li data-id="5">Item 5</li> 
</ul> 

回答

1

您可以通過使用地圖方法本身實現這一目標。

var obj = $('.sortable li').map(function() { 
return { 
    id: $(this).data("id") 
}; 
}).get(); 

JSON.stringify(obj); 
+0

謝謝我更喜歡地圖方法,而不是每個。 – Alko

3

var id = []; 
 
$('.sortable li').each(function() { 
 
    id.push({ 
 
    id: $(this).data('id') 
 
    }); 
 
}) 
 

 
console.log(JSON.stringify(id))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<ul class="sortable"> 
 
    <li data-id="1">Item 1</li> 
 
    <li data-id="2">Item 2</li> 
 
    <li data-id="3">Item 3</li> 
 
    <li data-id="4">Item 4</li> 
 
    <li data-id="5">Item 5</li> 
 
</ul>

入住此使用.each().push()