我有这个HTML块来控制一个数量:
<div class="cart-product-quantity">
<div class="quantity m-l-5">
<input type="button" class="minus" value="-">
<input type="text" class="qty" value="1">
<input type="button" class="plus" value="+">
</div>
</div>
下面是jQuery代码:
$(document).ready(function(){
$('.qty').prop('disabled', true);
$('.plus').click(function(){
$('.qty').val(parseInt($('.qty').val()) + 1 );
});
$('.minus').click(function(){
$('.qty').val(parseInt($('.qty').val()) - 1 );
if ($('.qty').val() == 0) {
$('.qty').val(1);
}
});
});
我的问题是因为我在很多地方都有HTML,JS代码控制所有的块,而它应该控制选定的块。
请问我怎么换这个?
多谢了。
在.cart-product-quantity>.quantity
块上设置事件可以确保事件在正确的位置触发。请查看下面的片段。
null
$(document).ready(function () {
setProductQuantityEvents();
});
function setProductQuantityEvents() {
var $productQuantity = $('.cart-product-quantity>.quantity');
$productQuantity.find('.qty').prop('disabled', true);
$productQuantity.on('click', '.plus', function () {
var $this = $(this),
$quantity = $this.siblings('.qty'),
qty = parseInt($quantity.val()) + 1;
$quantity.val(qty);
}).on('click', '.minus', function () {
var $this = $(this),
$quantity = $this.siblings('.qty'),
qty = parseInt($quantity.val()) - 1;
$quantity.val(qty < 1 ? 1 : qty);
})
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cart-product-quantity">
<div class="quantity m-l-5">
<input type="button" class="minus" value="-">
<input type="text" class="qty" value="1">
<input type="button" class="plus" value="+">
</div>
</div>
<div class="cart-product-quantity">
<div class="quantity m-l-5">
<input type="button" class="minus" value="-">
<input type="text" class="qty" value="1">
<input type="button" class="plus" value="+">
</div>
</div>
<div class="cart-product-quantity">
<div class="quantity m-l-5">
<input type="button" class="minus" value="-">
<input type="text" class="qty" value="1">
<input type="button" class="plus" value="+">
</div>
</div>
您需要在click
事件处理程序中使用this
关键字来引用单击的按钮。从那里,您可以遍历DOM以找到相关的input
元素,在下面的示例中,我使用siblings()
。
此外,请注意,您可以使用math.max()
简化确保值不能小于1的条件。试试看:
null
jQuery($ => {
$('.qty').prop('disabled', true);
$('.plus').click(function() {
$(this).siblings('.qty').val((i, v) => parseInt(v, 10) + 1);
});
$('.minus').click(function() {
$(this).siblings('.qty').val((i, v) => Math.max(1, parseInt(v, 10) - 1));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="cart-product-quantity">
<div class="quantity m-l-5">
<input type="button" class="minus" value="-">
<input type="text" class="qty" value="1">
<input type="button" class="plus" value="+">
</div>
</div>
<div class="cart-product-quantity">
<div class="quantity m-l-5">
<input type="button" class="minus" value="-">
<input type="text" class="qty" value="1">
<input type="button" class="plus" value="+">
</div>
</div>
本文向大家介绍jquery获取所有选中的checkbox实现代码,包括了jquery获取所有选中的checkbox实现代码的使用技巧和注意事项,需要的朋友参考一下 获取所有name为spCodeId的checkbox 以上这篇jquery获取所有选中的checkbox实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
如果我只运行几个线程,其中一些线程调用静态函数,而另一些线程创建新实例。我希望在每次对的调用中获得当时实例的实际数量。 代码中的两个选项有区别吗? 如果我锁定“”,这是否意味着在构造函数退出synchronized块之前,我不能调用(假设我没有在getCount()上编写synchronize)。 如果我在代码中的某个地方执行同步块,它是只锁定同步块还是锁定所有“”代码? 从这里开始编辑:谢谢大家
问题内容: 我的单元测试与集成测试位于单独的目录树中,但是具有相同的包结构。我的集成测试需要外部资源(例如服务器)可用,但是我的单元测试彼此之间以及与环境之间是完全独立的。 在IntelliJ-IDEA(v7)中,我定义了一个JUnit运行/调试配置,以运行顶层程序包中的所有测试,并且这当然会拾取失败的集成测试。 我想定义一个运行所有单元测试的运行junit配置。有任何想法吗? 问题答案: 答案是
我正在尝试将edgetpu USB加速器与Intel ATOM单板计算机和C API结合使用,以进行实时推断。 edgetpu的C API基于TensorFlow lite C API。我需要包括来自tensorflow/lite目录的头文件(例如tensorflow/lite/interpreter.h)。 我的问题是我可以只使用Lite(而不是用于训练的其他操作)构建张量流吗?如果是,我该怎么
问题内容: 如何使用jQuery访问asp.net控件 不会工作。 问题答案: 上面的aspx代码在页面上呈现时变为 这是因为.net控件所在的主控信息和控制信息被预先放置,这使我们编写选择器变得有些棘手。 您有几种选择。这绝不是全面的,但我会尝试一下。 选项1: 使用-推荐,但不是。如果可以的话,我会尽量避免写作。主要原因是,您只能在页面中使用它,而不能在外部文件中使用它。 选项2: 使用属性选
问题内容: 我有一个正在创建的用户控件,它使用jQuery中的一些AJAX。 我需要在控件的代码后面调用一个函数,但是我在网上找到的每个示例都像这样: 如果我在Default.aspx页中有该方法,则此方法很好。但是我不想在那儿有函数,我需要在控件的代码背后添加函数。如何修改url属性以调用正确的函数? 我试过了: 但这没用。 问题答案: 您不能… WebMethods必须位于WebService