如何获取所有元素并将它们作为数组发送到JQuery

时间:2015-08-29 08:07:34

标签: javascript php jquery arrays json

在我的购物车中,我的代码每次根据用户的选择产生类似下面的结构。每个 tr 用于产品, x 表示基于产品的不同值, id 是product的ID。索x,ID和数量每次都不一样。

<tr>
    <td><span class="product-id" value="x"></span></td>
    <td><img class="product-img" value="x" /></td>
    <td><a class="product-name" value="x"></a></td>
    <td><span class=product-color value="x"></span>
    <td><select  class="qnty-id" value="x"></select></td>
    <td><span class="price-id" value="x"></span></td>
    <td><span class="total-id" value="x"></span></td>
</tr>

我想以数组或Json格式收集它们,如下所示:

array(x => array(
    'id'=>'product-id',
    'name'=>'product-name',
    'color'=>'product-color',
    'quntity'=>'qnty-x',
    'price'=>'price-x',
    'total'=>'total-x')
)

使用Ajax将它们发送到我的服务器端。 我很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

将您的表格ID视为表格,请尝试以下操作:

var table = $('#table');
var elems = table.find('tr');
var cartArray = [];
elems.each(function (i, item) {
    var itemSelector = $(item);
    var id = itemSelector.find('.product-id').attr('value');
    var img = itemSelector.find('.product-img').attr('value');
    var name = itemSelector.find('.product-name').attr('value');
    var color = itemSelector.find('.product-color').attr('value');
    var quantity = itemSelector.find('.qnty-id').val();
    var price = itemSelector.find('.price-id').text();
    var total = itemSelector.find('.total-id').text();
    cartArray.push({id: id, img: img, name: name, color: color, quantity: quantity, price: price, total: total});
});
console.log(cartArray);