在Javascript过滤器函数中使用if-else
我有这把小提琴。我想在filter函数中使用if-else。我有一个可以工作,但循环似乎没有中断。因为它不会中断,所以针对所有未过滤的条件打印else部分。如何打破这个循环?还有更好的办法吗 我有两个文本框和一个按钮,当我输入标题和数量并点击add时,我想检查它是否已经存在于表中。如果存在,我想将数量替换为新值。如果它不存在,我想添加带有新标题和数量的新行。检查存在对我来说是个谜,根本不起作用。在Javascript过滤器函数中使用if-else,javascript,jquery,filter,html-table,Javascript,Jquery,Filter,Html Table,我有这把小提琴。我想在filter函数中使用if-else。我有一个可以工作,但循环似乎没有中断。因为它不会中断,所以针对所有未过滤的条件打印else部分。如何打破这个循环?还有更好的办法吗 我有两个文本框和一个按钮,当我输入标题和数量并点击add时,我想检查它是否已经存在于表中。如果存在,我想将数量替换为新值。如果它不存在,我想添加带有新标题和数量的新行。检查存在对我来说是个谜,根本不起作用。 $('#btnAdd').click(function () { debugger;
$('#btnAdd').click(function () {
debugger;
UOMCaption = $('#UOMCaption').val();
UOMQty = $('#UOMQuantity').val();
$("#tbluom tr td:first-child").filter(function () {
if ($(this).text().indexOf(UOMCaption) > -1) {
$(this).next("td").text("found it");
}
else {
$('#tbluom >tbody').append('<tr><td>' + UOMCaption + '</td><td>' + UOMQty + '</td></tr>');
}
});
$('#UOMCaption,#UOMQuantity').val("");
});
$('#btnAdd')。单击(函数(){
调试器;
uomoption=$('#uomoption').val();
UOMQty=$('UOMQuantity').val();
$(“#tbluom tr td:first child”).filter(函数(){
if($(this).text().indexOf(uomoption)>-1){
$(this.next(“td”).text(“find it”);
}
否则{
$('#tbloom>tbody')。追加(''+uomoption+''+UOMQty+'');
}
});
$(“#uomcOption,#UOMQuantity').val(“”);
});
如果您希望循环在第一次匹配后中断,请使用
$("#tbluom tr td:first-child").each(function () {
if ($(this).text().indexOf(UOMCaption) > -1) {
$(this).next("td").text("found it");
return false;
} else {
$('#tbluom >tbody').append('<tr><td>' + UOMCaption + '</td><td>' + UOMQty + '</td></tr>');
}
});
$(“#tbloom tr td:first child”)。每个(函数(){
if($(this).text().indexOf(uomoption)>-1){
$(this.next(“td”).text(“find it”);
返回false;
}否则{
$('#tbloom>tbody')。追加(''+uomoption+''+UOMQty+'');
}
});
那么您想在找到第一个元素时中断吗?您的小提琴与提供的代码不匹配,为什么?如果您想在找到第一个元素后返回,请在if块中添加一个return语句。这是一种猜测,但这是您想要的吗?是的,如果我找到第一个元素,我想打破循环。即使我找不到循环,我也只想做一次其他部分。当前,else部分的打印次数与未通过筛选条件的行数相同。返回false不处理else部分,如果表中已存在三行,则新记录将被追加三倍。@codebrain使用每个而不是过滤器时,它应该可以工作。这一行几乎可以工作,但当我添加相同的UomOption if无法检查时。。出现问题。