jquery裡判斷陣列內是否包含了指定的值或元素的方法

烏雲上發表於2018-06-05

  本文講的是在jquery裡,如何判斷一個陣列裡是否包含了指定的值,變數,或其它物件元素的方法。

在jquery裡,我們可以用$.inArray來判斷一個陣列裡是否包含了指定的值或其它物件元素,來看一個簡單的例項:

var arr=["aijquery","jquery","I like it"];
var str="aijquery.cn";
if($.inArray(str,arr)<0){
alert("陣列裡不包含!");
}

$.inArray是用來獲取指定的值在陣列中的位置,從0開始計數(如果沒有找到則返回 -1 。

 

上面的陣列只是普通的字元型陣列,下面我們來看其它型別的陣列,比如jquery裡用$.makeArray來生成的HTML元素類陣列:

//我們首先使用$.makeArray來生成一個陣列
var arr=$.makeArray($("div"));

現在假設這些div裡,我們其中有一個ID為”aijquery”的div,那麼我們是否可以用上面的方法來判斷這個div是否包含在這個陣列裡呢?

答案是可以的,不過需要注意轉換jquery物件為js物件,來看下面站長的測試結果:

$.inArray($("#aijquery"),arr);//返回-1 這是錯誤的結果
$.inArray($("#aijquery")[0],arr);//返回0 這才是正確的結果

 

 

PS:關於jquery物件與js物件之間的轉換:jquery物件與dom物件之間互相轉換的方法,使jquery物件可以直接使用js裡的方法

 

<!doctype html>
<html lang="en">
<head>
<title>$.inArray判斷元素是否包含在陣列中的線上演示-aijQuery.cn</title>
<script language="JavaScript" src="http://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">
</head>
<body>
  <div id="aijquery">aijquery</div>
  <div>1</div><div>2</div><div>3</div>
  <P id="inarray">div#aijquery在陣列裡的位置是:</P>
<script language="javascript">
var arr=$.makeArray($("div"));
//在測試的時候,可以把下面程式碼中的[0]去掉,換成jquery物件來試
$("#inarray").append($.inArray($("#aijquery")[0],arr));
</script>
</body>
</html>

View Code

摘自:http://www.aijquery.cn/Html/jqueryrumen/79.html


相關文章