根据输入和查找表查找值

我有一个jQuery问题,我可以使用一些帮助。 我正在尝试根据表中的值确定值。

这是场景:

  1. 选择了一个类别。 这决定了要使用的列。 这是代码:

    var column; if( $('input:radio[name=arc2-1]:checked').val() == 0 && $('input:radio[name=arc2-2]:checked').val() == 0) { column = 2; }else if( $('input:radio[name=arc2-1]:checked').val() == 0 && $('input:radio[name=arc2-2]:checked').val() == 1) { column = 3; }else if( $('input:radio[name=arc2-1]:checked').val() == 1 && $('input:radio[name=arc2-2]:checked').val() == 0) { column = 4; }else if( $('input:radio[name=arc2-1]:checked').val() == 1 && $('input:radio[name=arc2-2]:checked').val() == 1) { column = 5; }else if( $('input:radio[name=arc2-1]:checked').val() == 2 && $('input:radio[name=arc2-2]:checked').val() == 1) { column = 6; }else if( $('input:radio[name=arc2-1]:checked').val() == 3 && $('input:radio[name=arc2-2]:checked').val() == 1) { column = 7; } 
  2. HTML中有一个隐藏的表,如下所示:

     
    65 5.4 5.4 3.1 3.1 3.0 -
    55 4.6 4.6 2.7 2.7 2.5 -
    45 3.8 3.8 2.2 2.2 2.0 -
    35 2.9 2.9 1.7 1.7 1.5 8.1

表中的值不会更改。 并且总会有7列和11行(我缩短了示例)。

  1. 这是棘手的部分。 在输入字段中输入一个数字(65或更少)。 然后:

  2. 根据第一个表列检查输入编号。 输入数字“向上舍入”到列中它上面的下一个最接近的数字。

  3. 要查找的数字是步骤1和步骤4中的数字。

例如 ,如果列为4且输入的数字为31,则您将转到第一列并找到下一个最接近的数字“向上舍入”(35),然后转到第4列…和数字找到是1.7

我找到了与解决方案相关的零碎(例如: jQuery在prev。和下一行中找到相同的td ),但我不确定如何将它们放在一起。

任何有关解决方案的帮助/指导或在哪里寻找解决方案都将非常感激。

你可以这样做:

 function get_table_value(column, value) { table = $('#ms25'); smallestdiff = Number.MAX_VALUE; savedindex = 0; table.find('td:first-child').each(function(i) { diff = parseInt($(this).text(),10) - parseInt(value, 10); if (diff > 0 && diff < smallestdiff) { smallestdiff = diff; savedindex = i; } }); tr = table.find('tr:eq('+savedindex+')'); alert ( tr.find('td:first-child').text() ); //alerts 35 alert ( tr.find('td:nth-child('+column+')').text() ); //alerts 1.7 } 

看工作演示