如何提取表格特定列的第二低值?

时间:2014-10-01 05:46:54

标签: javascript jquery json parsing

var rowText = $('tbody tr:eq(2) td:eq(2)').map(function() {
return $(this).text();
}).get()[0];

window.alert(rowText);

http://jsfiddle.net/pcxx9dyy/2/

我特意想要提取除NPC之外的商品在市场上的最低价格。

行始终排序,但有时NPC Shop记录为零。

1 个答案:

答案 0 :(得分:1)

如果此表总是排序INCR并且第一行始终具有NPC Shop记录,那么只需修改您的代码:

$('tbody tr:eq(2) td:eq(1)')

它有效。 但是如果行可以未分类,并且可能有多个甚至零NPC Shop记录,那么您需要更复杂的算法。

<强>更新

以下是“未分类”和“任意数量的NPC商店记录”的代码:JSFiddle

代码:

var price = null;
$("tbody tr").each(function(i,e){
    var $col1 = $(e).find("td:eq(0)"),$col2 = $(e).find("td:eq(1)");
    if ($col1.html().indexOf("NPC")===-1) {
        var rowPrice = parseFloat($col2.html().replace(",","."));
        if (!price || price.price>rowPrice)
            price = {
                name:$col1.find("a").html(),
                price: rowPrice
            };
    }
});

alert("Min price is:"+price.price+" from "+price.name);