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(“”) } } }); });
    不客气。你的问题是什么?在循环中添加新的逻辑是有缺陷的…你需要先检查所有的逻辑,然后在循环完成后添加,如果找不到它谢谢,知道它很好,如果你认为它是更好的解决方案,请向上投票。谢谢,非常枯燥的代码。它工作正常,我可以从列表中删除一个项目而不做任何更改。我可以添加一些代码。你能检查一下这个吗?非常感谢。