【问题标题】:jquery inArray usage [duplicate]jquery inArray用法[重复]
【发布时间】:2014-03-30 13:29:47
【问题描述】:

我试图在某个数组中找到一些单词,我做了这样的事情:

    $("#get").click(function(){
    $(".name").each(function(){
        var fisier = $(this).text();
        alert($.inArray("migr", fisier));
    });
});

我几乎在每个 fisier var 中都有“migr”,但我只得到 -1。我做错了什么?

谢谢!

【问题讨论】:

  • 它将只匹配确切的单词..
  • fisier 只是一个字符串而不是数组。
  • 当然,傻我..谢谢!
  • 你能提供html和里面的数据吗
  • fisier 变量是字符串而不是数组,您尝试一次又一次地重新声明它

标签: jquery arrays


【解决方案1】:

借助 inArray 函数,您可以检查数组中是否存在值 或不。 $.inArray 函数返回元素的索引。如果元素不是 存在于数组中,它将返回-1。所以,我们可以很简单地检查它 判断一个值是否存在于数组中。

【讨论】:

    【解决方案2】:

    fisier 只是一个字符串而不是一个数组。

    我想这就是你想要的:

    $("#get").click(function(){
        var names = $('.name').map(function() {
            return $(this).text();
        });
        alert($.inArray("migr", names));
    });
    

    【讨论】:

      【解决方案3】:

      inArray 返回数组中元素的索引,而不是指示该项目是否存在于数组中的布尔值。

      所以,要检查一个项目是否在数组中,请使用:

      if(jQuery.inArray("test", myarray)!==-1) 
      

      if($.inArray("test", myarray)!==-1) 
      

      如果没有找到元素,inArray 将返回 -1。

      【讨论】:

      • 如果要返回布尔值,请使用波浪号 (~)。 if (!~$.inArray(0, [1, 2, 3, 4, 5])) { // returns false, not -1 }.
      【解决方案4】:

      您可以使用 JavaScript indexOf 方法检查关键字。这是检查数组的每个元素:

      $("#get").click(function(){
          $(".name").each(function(){
              var fisier = $(this).text();       
              if(fisier.indexOf("migr") !=-1){
                 alert('Keyword found');
              }else{
                 alert('Keyword not found');
              } 
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-23
        相关资源
        最近更新 更多