使用jquery和表单中的选项从间隔中获取值

时间:2013-11-21 17:47:30

标签: jquery

我想从selectbox中选择正确的选项

<select id="ammount">
<option value="">- Select -</option>
<option class="100" value="0">5,00</option>
<option class="200" value="5,01">10,00</option>
<option class="300" value="10,01">15,00</option>
</select>

<script type="text/javascript">
    $(document).ready( function () {

        $('form').on('change', '#height', function(){
            var height  = $('#height').val(); // e.g. height  = "3,00";

            // HERE I NEED TO GRAB THE RIGHT OPTION FROM SELECT OPTIONS WHERE HEIGHT (e.g. 3,00) IS IN
            // THE INTERVAL BETWEEN VALUE (e.g. value="0") AND TEXT (e.g. 5,00)
        });
    });
</script>

所以,如果我的身高是3,00,那么正确的选择就是第一个:

<option class="100" value="0">5,00</option>

我需要抓取类的值(例如100或200或300等)并将其存储在新变量中。例如价

所以,我需要以某种方式构建间隔,其中第一个值是value =“xxxx”的值,第二个值是选项标签之间的text()值。

1 个答案:

答案 0 :(得分:1)

如果我理解正确的模式,这样的事情应该有效

$('form').on('change', '#height', function(){
     var height  = valToNum($(this).val()); // e.g. height  = "3,00";
     var amtOpts=$('#ammount option:gt(0)');
     var selected= amtOpts.filter(function(){        
         return height > this.value && height <= ( $(this).next().val() || Infinity);
     }).prop('selected',true);

    $('#res').text(selected.attr('class'))

})

function valToNum(val){    
    return 1* $.trim(val).replace(/,/g,'.');    
}

DEMO