jQuery .next()和.previous()

时间:2012-11-14 10:16:03

标签: javascript jquery

Aug: <input type="text" value="100000" name="targetMonth_8" id="targetMonth_8" class="targetMonth" disabled>
Sep: <input type="text" value="100000" name="targetMonth_9" id="targetMonth_9" class="targetMonth" disabled>
Oct: <input type="text" value="100000" name="targetMonth_10" id="targetMonth_10" class="targetMonth active">
Nov: <input type="text" value="100000" name="targetMonth_11" id="targetMonth_11" class="targetMonth active">
Dec: <input type="text" value="100000" name="targetMonth_12" id="targetMonth_12" class="targetMonth active">

出于本演示的目的,假装当前月份是10月。 AUG / SEP不可编辑,因为它在当前月份(10月)之前。因此,10月,11月和12月是可编辑的。如果用户编辑了10月,我想动态获取下一个有效输入,我将在其中进行更改,以便自动平衡系统。

我还在页面上有一个指示器,用于设置是否将NEXT或PREVIOUS月作为自动平衡目标。

例如: 如果指标是DOWNWARDS那么

  • 如果用户编辑了10月,我想知道11月的ID及其值。
  • 如果用户编辑了11月,我想知道Dec的id及其值。
  • 如果用户编辑了Dec,我想知道Oct的id及其值。

如果指标是UPWARDS那么

  • 如果用户编辑了10月,我想知道Dec的id及其值。
  • 如果用户编辑了11月,我想知道10月的id及其值。
  • 如果用户编辑了Dec,我想知道11月的id及其值。

如何使用jQuery动态获取NEXT或PREVIOUS输入WHERE CLASS为“活动”的名称和值?

即:

<script>
$('#targetMonth_{$monthNumber}').keyup(function() {
  balanceDirection = $('#balanceDirectionValue').val();
  if (balanceDirection=='down') {
    balanceInputID = <next input's ID>;
    balanceInputValue = <next input's value>;
  }
  if (balanceDirection=='up') {
    balanceInputID = <previous input's ID>;
    balanceInputValue = <previous input's value>;
  }
}
</script>

我尝试过使用:

  

$( '#targetMonth _ {$ monthNumber}')。nextAll( '活性')。VAL()

类似的东西,我不确定......请协助。如果可以用另一种方式完成,我愿意接受改变。

1 个答案:

答案 0 :(得分:0)

是的,这应该有效:

the_val = $('#targetMonth_{$monthNumber}').nextAll('.active').val();
the_id = $('#targetMonth_{$monthNumber}').nextAll('.active').attr('id');

这些变量可能是数组