JQuery计算错误:“未捕获的类型错误:对象[对象对象]没有方法'值'”
问题描述:
我对jQuery很新,需要根据用户放置在2个文本框中的内容来创建计算。JQuery计算错误:“未捕获的类型错误:对象[对象对象]没有方法'值'”
我的形式如下:
<tr>
<td with='110'>£ $ProductCostEach</td>
<td with='110'>Per tile</td>
<td width='55'>
<input type='hidden' name='pid' id='pid' value='$ProductID' />
<input name='quantity' class='quantity' type='text' size='1' maxlength='4' value='1' style='width:40px;' />
</td>
<td width='110'>
<button type='submit' class='red'><span class='buy'>Add to basket</span></button>
</td>
</tr><tr>
<td with='110'>£ $ProductCostPerMeter</td>
<td with='110'>Per Meter $TileSize</td>
<td width='55'>
<input type='hidden' name='pid' id='pid' value='$ProductID' />
<input name='msq' class='msq' type='text' size='1' maxlength='4' value='1' style='width:40px;' />
</td>
<td width='110'>
<button type='submit' class='red'><span class='buy'>Add to basket</span></button>
</td>
</tr>
现在,当用户输入与一类.msq我希望它进行计算的输入框的值,所以写了一个keyup事件:
function roundNumber(num, dec) {
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}
var convMultiplier
convMultiplier = 0.0625
$('.msq').bind('keyup', function(){
var qty_text_box = $(this).parent().parent().parent().find('.quantity');
qty_text_box.value(roundNumber($(this).value * convMultiplier, 2));
});
但有一个问题刚刚得到输入框的值。如果我在var qty_text_box = $(this).parent()。parent()。parent()。find('。quantity');后添加alert(qty_text_box.value())我得到一个错误“遗漏的类型错误:对象的翻译:有没有方法‘价值’”
但我在努力工作,出了什么问题?
提前许多感谢,
大连
答
似乎不像你的父母()的字符串jquery调用正在找到正确的元素。如果您在同一页面上没有多个数量输入,您应该只给它一个ID并以此方式引用它。
如果您在页面上有多个数量输入,您应该将被点击的按钮和父元素中的输入(可能位于同一行)分组,以使事情更容易,然后通过类似$(this ).parents('。parentEl')。find('。quantity')
或者,您可以选择使用$(this).closest('。quantity')来获取输入,但不会看到更多HTML我不能告诉你,如果这将可靠地工作。
编辑也是你的第二次使用。值需要parens(.value())