jQuery - 获取div内容并乘以输入值

时间:2013-04-30 07:33:28

标签: jquery html

我试图在我的页面上实现简单的乘法。

这就是我所拥有的:

HTML

    <input type="text" name="qty" id="qty" maxlength="12" title="Qty" class="input-text qty">
    <span class="price">$2</span>
    <div class="total"></div>

的jQuery

     $('input[name="qty"]').keyup(function() {
     var a = $('span.price"]').val();
     var b = $(this).val();
     $('.total"]').val(a * b);
     });

- 基本上输入的是#qty是用户自己放置的字段 - span.price是价格更新的地方,span.price会在您为产品添加更多选项时更新 -total是从数量*价格中显示总数的div。

我知道jQuery可以实现这一切我花了很多时间试图让它工作。

4 个答案:

答案 0 :(得分:2)

spandiv没有values(它们不是输入字段)。您可以使用.text()来获取/设置其内容。此外,您的.totalspan.price选择器不正确,您需要删除"]

 $('input[name="qty"]').keyup(function() {
     var a = $('span.price').text();
     var b = this.value;
     $('.total').text(a * b);
 });

Here's a fiddle


修改

您可以使用replacespan.price

中删除美元
var a = $('span.price').text().replace('$', '');

或者,对于更强大的内容,您可以替换任何非数字或句点(.)的内容:

var a = $('span.price').text().replace(/[^\d.]/g, '');

答案 1 :(得分:1)

使用text()html()获取html标记内的文字。 .val()仅用于获取/设置输入元素的值

试试这个

  var a = $('span.price"]').text();  //<---here
  var b = $(this).val();
  $('.total').text(a * b);
         //---^^^^---here

答案 2 :(得分:1)

 $('input[name=qty]').keyup(function() {
     var a = $('span.price').html();
     var b = $(this).val();
     $('.total').html(a * b);
     });

尝试上面的代码,这对你有用。

答案 3 :(得分:1)

表单html标记您无法获得任何价值。为此,您需要使用.html()方法。

$('input[name=qty]').keyup(function() {
 var a = $('span.price').html();
 var b = $(this).val();
 $('.total').html(parseInt(a) *parseInt(b));
 });

或者你可以直接用parstInt写

$('input[name=qty]').keyup(function() {
 var a = $('span.price').html();
 var b = $(this).val();
 $('.total').html(parseInt(a) *parseInt(b));
 });

享受..... !!! :)