本文講的是在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