从所选元素访问数据?

时间:2014-02-26 13:42:45

标签: jquery input element

我有两组输入,ID由短语和数字组成:A(a1,a2,...)和B(b1,b2,...)。

HTML:

<input id="a1" value="1">
<input id="b1" value="">

<input id="a2" value="2">
<input id="b2" value="">
...

现在我想提取A的值,用它做someFunction(数字)并将结果粘贴到B的值中。类似于:

JS:

$( "[id^='b']" ).val( someFunction( $( "[id^='a']" ).val() ) );

function someFunction(n)
{
    return 5*n;
}

我得到的结果是:

结果(JSFiddle):

a1: 1
b1: 5

a2: 2
b2: 5

但我想得到这个:

结果(我想要的是):

a1: 1
b1: 5

a2: 2
b2: 10

因此,如果我可以访问jQuery当前选择的元素的数据,可能的解决方案可能是:

  • $("[id^='b']").val(...)设置每个B(b1,b2,...)
  • 的值
  • val(...)
    • 在jQuery
    • 当前选中的元素的id属性的末尾获取number
    • 选择ID为"a"+number
    • 的元素

那么,如何从jQuery当前选择的元素中访问数据?或者有更好的解决方案,我不知道?

2 个答案:

答案 0 :(得分:1)

尝试

Fiddle Demo

$("[id^='b']").val(function () {
    return 5 * parseInt($('#a' + this.id.replace('b', '')).val());
});

this-keyword

答案 1 :(得分:0)

好的,我用下面的代码解决了这个问题,所以我的函数是在jQuery之外声明的:

$("[id^='b']").val(function()
{
    return someFunction($('#'+this.id.replace('b','a')).val());
});

感谢Tushar Gupta的灵感。