我有一个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中有一个隐藏的表格,如下所示:
<table id="ms25">
<tr>
<td>65</td>
<td>5.4</td>
<td>5.4</td>
<td>3.1</td>
<td>3.1</td>
<td>3.0</td>
<td>-</td>
</tr>
<tr>
<td>55</td>
<td>4.6</td>
<td>4.6</td>
<td>2.7</td>
<td>2.7</td>
<td>2.5</td>
<td>-</td>
</tr>
<tr>
<td>45</td>
<td>3.8</td>
<td>3.8</td>
<td>2.2</td>
<td>2.2</td>
<td>2.0</td>
<td>-</td>
</tr>
<tr>
<td>35</td>
<td>2.9</td>
<td>2.9</td>
<td>1.7</td>
<td>1.7</td>
<td>1.5</td>
<td>8.1</td>
</tr>
</table>
表格中的值不会改变。并且总会有7列和11行(我缩短了示例)。
这是棘手的部分。输入中输入一个数字(65或更少) 领域。然后:
根据第一个表格列检查输入的数字。输入数字“向上舍入”到列中它上面的下一个最接近的数字。
例如,如果列为4且输入的数字为31,您将转到第一列,找到下一个最接近的数字“向上舍入”(35),然后你去到第4列......并且要查找的数字是 1.7 。
我发现了与解决方案相关的零碎(例如:jQuery find same td in prev. and next row),但我不确定如何将它们放在一起。
对于解决方案或寻找解决方案的任何帮助/指导都将非常感激。
答案 0 :(得分:1)
你可以这样做:
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
}
见工作demo