使用.each()函数时未得到预期的结果

时间:2019-04-19 19:50:50

标签: jquery

我目前正在编写js脚本,以获取DOM元素并将其推送到我的数据库中。

基本上,我想获取购物车中产品的价格,名称和网址。

我无法找到使用jquery遍历我的购物车和console产品的方法。分别记录它们的名称,价格和url。

我知道自己在.each函数中做错了事,因为我没有使用ojb。经过3个小时的奋斗,我仍然没有找到一种获得预期结果的方法,例如:

名称1 网址1 price1

名称2 网址2 price2

当前我得到了(假设我的购物车中有两个产品):

name1name2 url1url2 price1price2

name1name2 url1url2 price1price2

这是我的代码,当我将其粘贴到chrome控制台中时,会得到上述结果:

$.get(window.location.href, function(data){ 

    $("tr.woocommerce-cart-form__cart-item.cart_item").each(function(i, obj) {



    const name = $('td.product-name').text();
    console.log(name);

    const url = $('a.woocommerce-LoopProduct-link.woocommerce-loop-product__link').attr('href');
    console.log(url);

    const price = $('span.woocommerce-Price-amount.amount').text();
    console.log(price);

})
})

如果有人能把我从这场斗争中释放出来,我将非常感激:-)

1 个答案:

答案 0 :(得分:1)

尝试将obj添加为jQuery选择器的第二个参数:

const name = $('td.product-name', obj).text();
const url = $('a.woocommerce-LoopProduct-link.woocommerce-loop-product__link', obj).attr('href');
const price = $('span.woocommerce-Price-amount.amount', obj).text();

这告诉jQuery仅在obj迭代中的当前each中进行搜索。