根据输入和查找表查找值
我有一个jQuery问题,我可以使用一些帮助。 我正在尝试根据表中的值确定值。
这是场景:
-
选择了一个类别。 这决定了要使用的列。 这是代码:
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; }
-
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行(我缩短了示例)。
-
这是棘手的部分。 在输入字段中输入一个数字(65或更少)。 然后:
-
根据第一个表列检查输入编号。 输入数字“向上舍入”到列中它上面的下一个最接近的数字。
- 要查找的数字是步骤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 }
看工作演示