Javascript 在事件jQuery上选择目标div(行)中的元素
我有一个表,在同一行中完成事件后,我需要从中选择该行的所有值。在本例中,该行是带有jQuery的keyup事件。表可以有许多行,但选择必须在行事件的项目上 这是表格的HTML: 在网站上看起来是这样的: 了解更多内容:我正在制作一个报价应用程序,在该应用程序中,我将在每一行中键入每一项的价格和数量,并且我需要在每次键入后更新“金额”列。因此,我需要知道如何选择键入行的适当数量、价格、折扣和金额id来执行此操作。首先,id属性是唯一的,因此您应该用如下类替换它Javascript 在事件jQuery上选择目标div(行)中的元素,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有一个表,在同一行中完成事件后,我需要从中选择该行的所有值。在本例中,该行是带有jQuery的keyup事件。表可以有许多行,但选择必须在行事件的项目上 这是表格的HTML: 在网站上看起来是这样的: 了解更多内容:我正在制作一个报价应用程序,在该应用程序中,我将在每一行中键入每一项的价格和数量,并且我需要在每次键入后更新“金额”列。因此,我需要知道如何选择键入行的适当数量、价格、折扣和金额id来执行此操作。首先,id属性是唯一的,因此您应该用如下类替换它 <input type=&qu
<input type="number" class="form-control qty" placeholder="Qty" min="0" step="1">
$.qty列、.price-column.onkeyup、函数{
var tr=$this.closesttr;
每行更新数量;
};
函数updateAmount_per_rowtr{
var qTy=getValue_by_classNametr,'.qTy列.qTy';
var price=getValue_by_classNametr'.price column.price';
var金额=数量*价格;
tr.find'.amount列'.htmlamount;
}
函数getValue_by_classNametr,className{
var value=parseInttr.findclassName.val,10;
返回值>=0?值:1;
}
描述
数量
价格
折扣
数量
隐藏的
1.
产品A
产品B
%
2.
产品A
产品B
%
使用answer作为测试,我通过使用target属性而不是this使其工作,因为出于某种原因,这引用了整个文档
以下是keyup事件侦听器:
$('.price, .qty, .discount').keyup((event) => {
let tr = event.target.closest('tr');
updateAmount(tr);
});
这是最后一个updateAmount函数:
function updateAmount(tr) {
let qty = $(tr).find('.qty').val();
let price = $(tr).find('.price').val();
let discount = $(tr).find('.discount').val();
let amount = (qty * price * (100 - discount)) / 100;
$(tr).find('.amount').html(amount);
}
$this.closesttr?您不应该在每行重复ID。改用类$这个是.closesttr.find。qty@BarmarOP正在使用id,所以我们无法通过类名@MaiPhuong找到它。我知道,我告诉过他改为类。@Carlos Gonzalez这能回答你的问题吗?别忘了投我一票,然后点击勾号将我的答案标记为已解决,以便将来帮助读者,兄弟^ ^!我似乎不能这样做。在我做了console.logthis之后,我发现它引用了整个文档。正因为如此,其他任何东西似乎都无法找到最接近的“tr”和其他任何东西。
$('.price, .qty, .discount').keyup((event) => {
let tr = event.target.closest('tr');
updateAmount(tr);
});
function updateAmount(tr) {
let qty = $(tr).find('.qty').val();
let price = $(tr).find('.price').val();
let discount = $(tr).find('.discount').val();
let amount = (qty * price * (100 - discount)) / 100;
$(tr).find('.amount').html(amount);
}