Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果值不在列表中,如何执行操作?_Jquery - Fatal编程技术网

Jquery 如果值不在列表中,如何执行操作?

Jquery 如果值不在列表中,如何执行操作?,jquery,Jquery,如果值不在列表中(列表是特定类的第一个实例),我希望执行一个操作 HTML <ul class="links_ul"> <li>test</li> <li>test2</li> </ul> <input id="my_input"> <button class="click_me">click me</button> 如果某个值不在列表中,或者某个值在列表中,则会发出

如果值不在列表中(列表是特定类的第一个实例),我希望执行一个操作

HTML

<ul class="links_ul">
    <li>test</li>
    <li>test2</li>
</ul>

<input id="my_input">

<button class="click_me">click me</button>
如果某个值不在列表中,或者某个值在列表中,则会发出警报

jsFiddle

您必须使用
.is(选择器)
检查列表是否包含该文本

试试看

您必须使用
.is(选择器)
检查列表是否包含该文本

试试看

试试这个

if (! $('.links_ul li').is(':contains(' + myInputValueVal + ')')) {
   alert(myInputValueVal + " not in list");
}
试试这个

if (! $('.links_ul li').is(':contains(' + myInputValueVal + ')')) {
   alert(myInputValueVal + " not in list");
}
试试这个

$(document).on('click', '.click_me', function() {
    var myInputValue = $("#my_input");
    var myInputValueVal = myInputValue.val();

    var $li = $('.links_ul:first li').filter(function() {
        return $(this).text() === myInputValueVal;    
    });    

    if($li.length==0) {
        alert(myInputValueVal + ' not in the list');
    }
});

试试这个

$(document).on('click', '.click_me', function() {
    var myInputValue = $("#my_input");
    var myInputValueVal = myInputValue.val();

    var $li = $('.links_ul:first li').filter(function() {
        return $(this).text() === myInputValueVal;    
    });    

    if($li.length==0) {
        alert(myInputValueVal + ' not in the list');
    }
});

我相信这是一款更干净、更可重复使用的产品:

function valueExists(selector, value) {

   var exists = false;
   $(selector).each(function () {
       if ($.trim(this.innerHTML) === value) {
           exists = true;
           break;
       }
   });

   return exists;

}

$(document).on("click", ".click_me", function () {

   var value = $("#my_input").value();

   if ( !valueExists(".links_ul > li", value) ) {
       alert("it's not in the list!");
   }

});

我相信这是一个更干净,更可重复使用:

function valueExists(selector, value) {

   var exists = false;
   $(selector).each(function () {
       if ($.trim(this.innerHTML) === value) {
           exists = true;
           break;
       }
   });

   return exists;

}

$(document).on("click", ".click_me", function () {

   var value = $("#my_input").value();

   if ( !valueExists(".links_ul > li", value) ) {
       alert("it's not in the list!");
   }

});

如果文本是te,tes,es,t,est,则失败。@MaheshSapkal显然,:contains()将搜索子字符串。我喜欢这个答案,因为它是最简洁的,但正如前面提到的,它在子字符串上失败了。我尝试删除
包含的内容
,但是对于完整的单词来说,它不起作用。有没有一种方法可以使用这个简洁的模型而不会在子字符串上失败?@user1063287所以你想正确地检查确切的单词。@RajaprabhuAravindasamy是的,确切的单词。如果文本是te,tes,es,t,est,则失败。@MaheshSapkal显然,:contains()将搜索子字符串。我喜欢这个答案,因为它是最简洁的,但正如前面提到的,它在子字符串上失败了。我尝试删除
包含的内容
,但是对于完整的单词来说,它不起作用。有没有一种方法可以使用这个简洁的模型而不会在子字符串上失败?@user1063287所以你想检查正确的单词。@RajaprabhuAravindasamy是的,正确的单词。