查找标签值对并捕获值Jquery

时间:2015-12-22 22:13:30

标签: jquery

我需要找到与部分匹配字符串的标签相关联的值。源块看起来像这样:

    <dt>
        Loose Ones
    </dt>
    <dd>
        8.00
    </dd>
    <dt>
        Loose Fives
    </dt>
    <dd>
        15.00
    </dd>
    <dt>
        Envelope Ones
    </dt>
    <dd>
        0.00
    </dd>
    <dt>
        Envelope Fives
    </dt>
        25.00
    <dd>

我想找到所有包含&#39; Loose&#39;并捕获相关值,然后将其总计为一个值。 Jquery必须有办法做到这一点。

2 个答案:

答案 0 :(得分:1)

您可以遍历dt元素,找到匹配的元素,然后找到最接近的dd元素,并将其内部值解析为数字。

var sum = 0;

$.each($('dt'), function(){
  if($(this).text().indexOf("Loose") != -1)
  {
    var dd = $(this).next('dd');
    var n = parseFloat(dd.text());
    sum = sum + n;
  }
});
console.log(sum);

https://jsfiddle.net/stjv1n3z/1/

答案 1 :(得分:0)

您可以使用jquery的contains()选择器来过滤dt代码,其中包含值&#39; Loose&#39;然后使用.next()转到dd元素。

var sum =0;

$('dt:contains("Loose")').each(function()
{
    if(!isNaN(parseFloat($(this).next('dd').text())))
      sum += parseFloat($(this).next('dd').text());
});

alert(sum);

示例:https://jsfiddle.net/DinoMyte/ve1jo4oo/