jQuery .next() and .previous()


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">

为了这个演示的目的,假设当前月份是十月。AUG/SEP不可编辑,因为它早于当前月份(十月)。因此,十月、十一月和十二月是可编辑的。如果用户编辑十月,我想动态地获得下一个活动输入,我将在那里进行更改,以自动平衡系统。

我在页面上还有一个指示器,用于设置下一个月还是上一个月是自动平衡的目标。

例如:如果指示器为DOWNWARDS,则

  • 如果用户编辑Oct,我想知道Nov的id及其值
  • 如果用户编辑Nov,我想知道Dec的id及其值
  • 如果用户编辑Dec,我想知道Oct的id及其值

如果指示器向上,则

  • 如果用户编辑Oct,我想知道Dec的id及其值
  • 如果用户编辑Nov,我想知道Oct的id及其值
  • 如果用户编辑Dec,我想知道Nov的id及其值

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

即:

<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('.active').val()

类似的事情,我不确定。。。请协助。如果可以用另一种方式来做,我愿意接受改变。

yup,应该可以工作:

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

这些变量可能是阵列

最新更新