javascript/jQuery:在检查是否存在时,将无法正常工作的项添加到列表中
编辑:由此代码解决javascript/jQuery:在检查是否存在时,将无法正常工作的项添加到列表中,javascript,jquery,for-loop,if-statement,Javascript,Jquery,For Loop,If Statement,编辑:由此代码解决 $("input[type='text']").keypress(function(event) { if (event.which === 13) { var todoText = " " + $(this).val(); var lis = $("li"); if ($(lis).filter(function() { return $(this).text() == todoText; }).length
$("input[type='text']").keypress(function(event) {
if (event.which === 13) {
var todoText = " " + $(this).val();
var lis = $("li");
if ($(lis).filter(function() {
return $(this).text() == todoText;
}).length === 0) {
$('ul').append("<li> " + $.trim($(this).val()) + "</li>");
$(this).val('').attr("placeholder", "Add New Todo").val("").removeClass('alert');
return false;
} else {
$(this).attr("placeholder", "Todo exist").val("").addClass('alert');
return false;
}
}
});
$(“输入[type='text'])。按键(函数(事件){
if(event.which==13){
var todoText=”“+$(this.val();
var lis=$(“li”);
if($(lis).filter(函数(){
返回$(this).text()==todoText;
}).length==0){
$('ul').append(“”+$.trim($(this.val())+” ”);
$(this.val(“”).attr(“占位符”,“添加新Todo”).val(“”.removeClass(“”)警报);
返回false;
}否则{
$(this.attr(“占位符”、“Todo exist”).val(“”.addClass('alert');
返回false;
}
}
});
过滤器功能帮助我解决了这个问题。TXz大量检查下面的解决方案。最好是在某处管理状态,而不是直接更新/检查DOM
$(文档).ready(函数(){
var todoItems=[“回家”、“买卡沃洛”、“炸鸡”];
函数renderItems(){
var items=todoItems.map(函数(项){
返回“”+项目+” ”
});
$(“#items”).html(items.join(“”));
}
renderItems();
$(“输入[type='text']”)。按键(函数(事件){
if(event.which==13){
if($(this.val()){
if(todoItems.indexOf($(this.val())=-1){
todoItems.unshift($(this.val());
renderItems();
$(this.val(“”)
}否则{
警报(“待办事项!”);
}
}
}
});
})
尝试以下代码:
$(document).ready(function(){
$("input[type='text']").keypress(function(event) {
if (event.which === 13 && $.trim($(this).val()) !== '') {
if ($('ul li:contains('+$.trim($(this).val())+')').length ) {
alert('todo exist!');
return false;
} else {
$('ul').append('<li>'+$.trim($(this).val()) +'</li>');
$(this).val('')
}
}
});
});
$(文档).ready(函数(){
$(“输入[type='text']”)。按键(函数(事件){
if(event.which===13&&$.trim($(this.val())!==''){
if($('ul li:contains('+$.trim($(this.val())+')).length){
警报('todo exist!');
返回false;
}否则{
$('ul').append(''+$.trim($(this.val())+' ');
$(this.val(“”)
}
}
});
});
不客气。你的问题是什么?在循环中添加新的逻辑是有缺陷的…你需要先检查所有的逻辑,然后在循环完成后添加,如果找不到它谢谢,知道它很好,如果你认为它是更好的解决方案,请向上投票。谢谢,非常枯燥的代码。它工作正常,我可以从列表中删除一个项目而不做任何更改。我可以添加一些代码。你能检查一下这个吗?非常感谢。