2012-03-22 22 views
0

大家好我有一个像jQuery的选择具有价值最后一个字段大于零

<div class="dlt_distance_slab"> 
    <div class="dl_distance_slab"> 
     <label for="upto"><g:message code="rule.upto.label" default="Upto" /></label> 
    </div> 
    <div class="dt_distance_slab_show"> 
     <g:formatNumber number="${ruleInstance?.distanceSlabLimit1}" type="number" maxFractionDigits="2" class="distanceSlablimit" /> Km 
    </div> 
</div> 
<div class="dlt_distance_slab"> 
    <div class="dl_distance_slab"> 
     <label for="upto"><g:message code="rule.upto.label" default="Upto" /></label> 
    </div> 
    <div class="dt_distance_slab_show"> 
     <g:formatNumber number="${ruleInstance?.distanceSlabLimit2}" type="number" maxFractionDigits="2" class="distanceSlablimit" /> Km 
    </div>  
</div> 
<div class="dlt_distance_slab"> 
     <div class="dl_distance_slab"> 
     <label for="upto"><g:message code="rule.upto.label" default="Upto" /></label> 
    </div> 
    <div class="dt_distance_slab_show"> 
     <g:formatNumber number="${ruleInstance?.distanceSlabLimit3}" type="number" maxFractionDigits="2" class="distanceSlablimit" /> Km 
    </div>   
</div> 

我要选择具有值> 0(所有于formatNumber Fiels是有相同的类=“distanceSlablimit最后formatNumber场场“

如何使用jQuery做

+1

您应该包含实际的HTML输出。 'g:formatNumber />'产生了什么? – Stefan 2012-03-22 08:29:08

+0

使用'.each'循环它们,如果值大于0,则将该项保存在变量中,并且在循环之后,应该将最后一个保存在var中。 – slash197 2012-03-22 08:30:46

回答

1

首先,你可以过滤选择的元素using a function as a parameter for .filter(),然后你可以简单地使用.last()

parseInt()用于将该值转换为数字。一定要总是指定第二个参数(基数),否则你会注意到一些"strange" behaviour。例如,'010'将被翻译为数字8,因为在Javascript中,起始零点表示八进制数字。

$('.distanceSlablimit').filter(function() { 
    //replace val() with text() if the elements are not form elements 
    return parseInt($(this).val(), 10) > 0; 
}).last(); 

jsFiddle Demo/and another with .text()

+0

给定未定义... – maaz 2012-03-22 08:46:28

+0

@maaz增加了对代码的评论。我不知道你的(asp?whatever)代码产生了什么标记。 '.val()'用于表单元素(如果你选中的话,我在演示中使用过),否则你可以使用'.text()',如果这些是div或者span或者其他的。添加了第二个演示,显示这个工作。 – kapa 2012-03-22 08:48:15

+0

其GSP(Groovy服务器页面)代码... – maaz 2012-03-22 08:54:22

-1

您可以使用filter()last();

$('.distanceSlablimit').filter(function() { 
    return parseInt($(this).val() || $(this).text()) > 0); // Checking val() and text() as the type of element is unknown. 
}).last(); 
+0

一个不必要的括号和'parseInt'的不安全使用。 – kapa 2012-03-22 08:46:23

+0

给出了未定义的答案 – maaz 2012-03-22 08:49:58

相关问题