HTML:
<input type="text" id="priceperperson1" name="priceperperson1" />
<input type="text" name="personsvalue1" class="countme" readonly="readonly" />
JS:
jQuery(document).ready(function($) {
$('div.pricerow input.countme').each(function(){
var id = this.name.substr(this.name.length-1);
alert($('input#priceperperson'+id));
this.value = parseInt($('priceperperson'+id).value) * parseInt($('countpersons'+id).value);
});
});
尽可能缩短。所有我警惕的是“对象”......价值是NaN。我试图在id上“parseInt”。我试过了:
$('[name=priceperperson'+id+']');
$('priceperperson'+id);
我做错了什么?
答案 0 :(得分:5)
执行$(..)
要获取值(字符串),请使用.val()
方法。
所以
alert( $('input#priceperperson'+id).val() );
答案 1 :(得分:2)
您应该将$
放在函数定义中。
我猜测它导致$
变量在函数中被重新定义 - 而不再指向jQuery的$()
函数。
我正在考虑这个:
jQuery(document).ready(function($) {
尝试使用,而不是:
jQuery(document).ready(function() {
答案 2 :(得分:1)
当你循环遍历jquery对象时,我相信你必须使用:
$(本).attr( '姓名'); 而不是 this.name
另外,要调用来自对象的值,你必须使用$ .val()或$ .attr('attributename');
// Shortcut for doc ready
$(function()
{
// Loop through values
var id = $(this).attr('name');
alert($('input#priceperperson' + id).val());
});
答案 3 :(得分:1)
您是否正在寻找.val()?
this.val(parseInt($('priceperperson'+id).val()));
答案 4 :(得分:0)
所有我处于警戒状态的都是“对象”......价值 是NaN。我试过“parseInt”
尝试为parseInt
提供基础:
parseInt(variable, 10);
答案 5 :(得分:0)
有一些错误......要获取jQuery对象的值,必须使用.val()
方法,而不是.value
。
然后,parseInt()需要作为第二个参数的基数。类似的东西:
...
this.value = parseInt($('priceperperson'+id).val(), 10) * parseInt($('countpersons'+id).val(), 10);
...
答案 6 :(得分:0)
您的代码可能包含错误
你的代码 id = lenght 1好的 如果id lenght&gt; 1 ??可能的例外
priceperperson1到priceperperson_1
# option # proposal
<input type="text" id="priceperperson_1" name="priceperperson_1" /> // => use "_"
<input type="text" name="personsvalue_1" class="countme" readonly="readonly" />
jQuery(document).ready(function($) {
$('div.pricerow input.countme').each(function(){
var id = this.name.split("_")[1]; // => get array value
this.value = parseInt($('[name=priceperperson_'+id+']').value()) *parseInt($('[name=countpersons='+id+']').value());
});
});