表遍历Jquery

时间:2015-10-26 13:56:31

标签: javascript jquery dom jquery-traversing

我有一个购物车页面,其数量不正确,因为产品是批量销售的(1,10,100项)。

我想要达到的目标是获取包装中的商品数量,乘以数量并显示商品总数。

这里是JSFiddle和代码:

jQuery(document).ready(function($){
$( ".variant_title" ).each(function() {
  var str = $(this).text();
  var qty = $(this).nextUntil('input[id^=updates_]').val();
  console.log(qty);
  if ( str.indexOf('jackets') > -1 ) {
      unities = str.slice(18,21);
      if (unities === '100' || unities === '10 ') {

        console.log(unities);
        totalUnities = unities * qty;
        console.log(totalUnities); 
        $(this).append('<br />' + totalUnities + ' Unities');
      }
  } else {
      unities = str.slice(18,19);
      if (unities === '1') {
        console.log(unities);
        totalUnities = unities * qty;
        $(this).append('<br />' + totalUnities + ' Unity');
      }
  }
});
});

表格示例

enter image description here

我现在的问题是遍历DOM并获取描述旁边的输入字段的值并乘以。

有谁知道我在哪里弄错了?

由于

2 个答案:

答案 0 :(得分:0)

  var str = $(this).text();
  var tr = $(this).closest('tr');  
  var qty = $(tr).find('input').val();
  console.log(qty);

哟需要获取您的父元素(此处为tr)并找到输入以获取您的数量。希望这个帮助

答案 1 :(得分:0)

nextUntil(-selector - )方法选择所有先前元素到-selector-
使用这种方法来获得数量:

var str = $(this).text();
var qty = $(this).parents('.item').next('td.qty').find("input[id^='updates_']").val();

http://jsfiddle.net/eetyr6ae/3/