2014-02-26 29 views
0

我有两组输入,其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(...)
    • 的价值得到number在id属性的结束目前的jQuery
    • 所选元素的选择与ID "a"+number

所以元素,我怎样才能从目前的jQuery选择的元素访问数据?还是有更好的解决方案,我不知道?

回答

1

尝试

Fiddle Demo

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

this-keyword

+0

如果函数声明在里面,就像在演示中一样。但我的功能有更多的代码行,应该是全球可访问的。 –

0

好吧,我解决了下面的代码的问题,使我的函数声明的jQuery之外:

​​

感谢Tushar Gupta获得灵感。