⑴ jquery有沒有數組去重的方法
js jquery去除數組中的重復元素
第一種:$.unique()
第二種:
for(var i = 0,len = totalArray_line.length;i < len;i++)
{
!RegExp(totalArray_line[i],"g").test(resultArray_line.join(",")) && (resultArray_line.push(totalArray_line[i]));
}
⑵ 如何把變數傳入jQuery的屬性過濾選擇器
vararr=["idName","idAddress",...];
//要拼接成字元串形式
varselect="[id^="+arr[i]+"]";
$(select)
⑶ jquery的選擇器有哪幾種類型
很多種,大概歸納為9種。
(1)基本
#id
element
.class
*
selector1,selector2,selectorN
(2)層次選擇器:
ancestor descendant
parent > child
prev + next
prev ~ siblings
(3)基本過濾器選擇器
:first
:last
:not
:even
:odd
:eq
:gt
:lt
:header
:animated
(4)內容過濾器選擇器
:contains
:empty
:has
:parent
(5)可見性過濾器選擇器
:hidden
:visible
(6)屬性過濾器選擇器
[attribute]
[attribute=value]
[attribute!=value]
[attribute^=value]
[attribute$=value]
[attribute*=value]
[attrSel1][attrSel2][attrSelN]
(7)子元素過濾器選擇器
:nth-child
:first-child
:last-child
:only-child
(8)表單選擇器
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
(9)表單過濾器選擇器
:enabled
:disabled
:checked
:selected
⑷ jquery數組封裝使用方法分享(jquery數組遍歷)
$.each(array,
[callback])
遍歷
不同於例遍
jQuery
對象的
$.each()
方法,此方法可用於例遍任何對象(不僅僅是數組哦~).
回調函數擁有兩個參數:第一個為對象的成員或數組的索引,
第二個為對應變數或內容.
如果需要退出
each
循環可使回調函數返回
false,
其它返回值將被忽略.
each遍歷,相信都不陌生,在平常的事件處理中,是for循環的變體,但比for循環強大.在數組中,它可以輕松的攻取數組索引及對應的值.例:
使用方法如下:
復制代碼
代碼如下:
var
arr
=
['javascript',
'php',
'java',
'c++',
'c#',
'perl',
'vb',
'html',
'css',
'objective-c'];
$.each(arr,
function(key,
val)
{
//
firebug
console
console.log('index
in
arr:'
+
key
+
",
corresponding
value:"
+
val);
//
如果想退出循環
//
return
false;
});
再來個測試程序:
[/code]
var
fruit
=
['蘋果','香蕉','橙子','哈密瓜','芒果'];
//用原生getElementsByTagName獲取h2元素的對象集合
var
h2obj=document.getElementsByTagName('h2');
//$.each()遍歷數組
$('input#js_each').click(function(){
$.each(fruit,function(key,val){
//回調函數有兩個參數,第一個是元素索引,第二個為當前值
alert('fruit數組中,索引:'+key+'對應的值為:'+val);
});
});
[/code]
相對於原生的for..in,each更強壯一點.
for..in也可以遍歷數組,並返回對應索引,但值是需要通過arrName[key]來獲取;
$.grep(array,
callback,
[invert])過濾
使用過濾函數過濾數組元素.此函數至少傳遞兩個參數(第三個參數為true或false,對過濾函數返回值取反,個人覺得用處不大):
待過濾數組和過濾函數.
過濾函數必須返回
true
以保留元素或
false
以刪除元素.
另外,過濾函數還可以是可設置為一個字條串(個人不推薦,欲了解自行查閱);
復制代碼
代碼如下:
v[code]ar
temp
=
[];
temp
=
$.grep(arr,
function(val,
key)
{
if(val.indexOf('c')
!=
-1)
return
true;
//
如果[invert]參數不給或為false,
$.grep只收集回調函數返回true的數組元素
//
反之[invert]參數為true,
$.grep收集回調函數返回false的數組元素
},
false);
console.dir(temp);
再來個測試程序:
復制代碼
代碼如下:
//$.grep()過濾數組
$('input#js_grep').click(function(){
$.grep(fruit,function(val,key){
//過濾函數有兩個參數,第一個為當前元素,第二個為元素索引
if(val=='芒果'){
alert('數組值為
芒果
的下標是:
'+key);
}
});
var
_moziGt1=$.grep(fruit,function(val,key){
return
key>1;
});
alert('fruit數組中索引值大於1的元素為:
'+_moziGt1);
var
_moziLt1=$.grep(fruit,function(val,key){
return
key>1;
},true);
//此處傳入了第三個可靠參數,對過濾函數中的返回值取反
alert('fruit數組中索引值小於等於1的元素為:
'+_moziLt1);
});
$.map(array,[callback])按給定條件轉換數組
作為參數的轉換函數會為每個數組元素調用,
而且會給這個轉換函數傳遞一個表示被轉換的元素作為參數.
轉換函數可以返回轉換後的值、null(刪除數組中的項目)或一個包含值的數組,
並擴展至原始數組中.這個是個很強大的方法,但並不常用.
它可以根據特定條件,更新數組元素值,或根據原值擴展一個新的副本元素.
復制代碼
代碼如下:
//1.6之前的版本只支持數組
temp
=
$.map(arr,
function(val,
key)
{
//返回null,返回的數組長度減1
if(val
===
'vb')
return
null;
return
val;
});
console.dir(temp);
//1.6開始支持json格式的object
var
obj
=
{key1:
'val1',
key2:
'val2',
key3:
'val3'};
temp
=
$.map(obj,
function(val,
key)
{
return
val;
});
console.dir(temp);
再來個測試程序:
復制代碼
代碼如下:
//$.map()按給定條件轉換數組
$('input#js_map').click(function(){
var
_mapArrA=$.map(fruit,function(val){
return
val+'[新加]';
});
var
_mapArrB=$.map(fruit,function(val){
return
val=='蘋果'
?
'[只給蘋果加]'+val
:
val;
});
var
_mapArrC=$.map(fruit,function(val){
//為數組元素擴展一個新元素
return
[val,(val+'[擴展]')];
});
alert('在每個元素後面加\'[新加]\'字元後的數組為:
'+
_mapArrA);
alert('只給元素
蘋果
添加字元後的數組為:
'+
_mapArrB);
alert('為原數組中每個元素,擴展一個添加字元\'[新加]\'的元素,返回的數組為
'+_mapArrC);
});
$.inArray(val,array)判斷值是否存在於數組中
確定第一個參數在數組中的位置,
從0開始計數(如果沒有找到則返回
-1
).記得indexOf()方法了嗎?
indexOf()返回字元串的首次出現位置,而$.inArray()返回的是傳入參數在數組中的位置,同樣的,如果找到的,返回的是一個大於或等於0的值,若未找到則返回-1.現在,
知道怎麼用了吧.
有了它,
判斷某個值是否存在於數組中,就變得輕而易舉了.
復制代碼
代碼如下:
//返回元素在數組中的位置,0為起始位置,返回-1則未找到該元素
console.log($.inArray('javascript',
arr));
測試程序:
[code]
//$.inArray判斷值是否在數組中,不存在返回-1,存在則返回對應索引值
$('input#js_inarray').click(function(){
var
_exist=$.inArray('芒果',fruit);
var
_inexistence=$.inArray('榴槤',fruit)
if(_exist>=0){
alert('芒果
存在於數組fruit中,其在數組中索引值是:
'+_exist);
}
if(_inexistence<
0){
alert('榴槤
不存在於數組fruit中!,返回值為:
'+_inexistence+'!');
}
});
⑸ Jquery如何過濾重復的值
您的解題思路應該是這樣的。
1,遍歷div中class= pager下所有的A標簽
2,獲取a標簽的href
3,初始化專一個數組
4,獲取的href和數組中的值屬作對比
代碼如下:
var a = new Array();
$(".pager").find("a[rel='external nofollow']").each(function(index,item){
var $this = $(item);
var $href= $this.attr("href");
$.each(anArray,function(n,value) {
if(value == $href){
$this.remove();
}else{
}
});
});
⑹ JQuery中基礎過濾選擇器用法實例分析
本文實例講述了JQuery中基礎過濾選擇器用法。分享給大家供大家參考。具體如下:
<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8"
/>
<title>基礎過濾選擇器</title>
<style
type="text/css">
#main{
width:600px;
border:1px
solid
green;
margin:auto;
padding:10px;
}
#tbl{
border-collapse:collapse;
border-top:1px
solid
red;
border-left:1px
solid
red;
margin:auto;
}
#tbl
td{
width:60px;
height:60px;
border-collapse:collapse;
border-bottom:1px
solid
red;
border-right:1px
solid
red;
}
</style>
<script
src="jquery-1.6.2.min.js"
type="text/javascript"></script>
<script
type="text/javascript">
$(function
()
{
//=============舉例1========================
//:first
說明:
匹配找到的第一個元素
//....<1>修改第一個單元格的背景色
//var
$tds
=
$("#tbl
td:first");
//$tds.css("backgroundColor",
"blue");
//....<2>修改第一行的背景色
//var
$trs
=
$("#tbl
tr:first");
//$trs.css("backgroundColor",
"blue");
//=============舉例2========================
//:last
說明:
匹配找到的最後一個元素.與
:first
相對應.
//...<1>修改隨後一個單元格的背景色
//var
$tds
=
$("#tbl
td:last");
//$tds.css("backgroundColor",
"blue");
//=============舉例3========================
//:not(selector)
去除所有與給定選擇器匹配的元素.有點類似於」非」
//...<1>把所有class不為tdClass的列的文本進行修改
//var
$tds
=
$("#tbl
td:not(.tdClass)");
//$tds.text("Not
tdClass");
//=============舉例4========================
//:even
說明:
匹配所有索引值為偶數的元素,從
0
開始計數.js的數組都是從0開始計數的.
//例如要選擇table中的行,因為是從0開始計數,所以table中的第一個tr就為偶數0.
//...<1>把索引值為偶數的行變成黃色
//var
$trs
=
$("#tbl
tr:even");
//$trs.css("backgroundColor",
"yellow");
//=============舉例5========================
//:
odd
說明:
匹配所有索引值為奇數的元素,和:even對應,從
0
開始計數.
//var
$trs
=
$("#tbl
tr:odd");
//$trs.css("backgroundColor",
"yellow");
//=============舉例6========================
//:eq(index)
說明:
匹配一個給定索引值的元素.eq(0)就是獲取第一個tr元素.括弧裡面的是索引值,不是元素排列數.
//...<1>設置第二個單元格的背景色
//var
$tds
=
$("#tbl
td:eq(1)");
//$tds.css("backgroundColor",
"gray");
//=============舉例6========================
//:gt(index)
說明:
匹配所有大於給定索引值的元素.
//...<1>把下標索引大於1的所有單元格背景色設置為灰色
//var
$tds
=
$("#tbl
td:gt(1)");
//$tds.css("backgroundColor",
"gray");
//=============舉例7========================
//:lt(index)
說明:
匹配所有小於給定索引值的元素.
//...<1>把下標索引小於3的所有單元格背景色設置為灰色
var
$tds
=
$("#tbl
td:lt(3)");
$tds.css("backgroundColor",
"gray");
//=============舉例8========================
//:header(固定寫法)
說明:
匹配如
h1,
h2,
h3之類的標題元素.這個是專門用來獲取h1,h2這樣的標題元素.
//...<1>把所有的h標簽背景色進行修改
var
$hs
=
$(":header");
$hs.css("backgroundColor",
"gold");
//=============舉例8========================
//slice
獲取下標范圍內元素
var
$trs
=
$("#tbl
tr").slice(1,
3);
$trs.css("backgroundColor",
"gold");
});
</script>
</head>
<body>
<div
id="main">
<h1>我是h1</h1>
<h2>我是h2</h2>
<h3>我是h3</h3>
<table
id="tbl">
<tr>
<td>1</td><td>1</td><td>1</td>
</tr>
<tr>
<td
class="tdClass">2</td><td>2</td><td>2</td>
</tr>
<tr>
<td>3</td><td>3</td><td>3</td>
</tr>
<tr>
<td>4</td><td>4</td><td
class="tdClass">4</td>
</tr>
<tr>
<td>5</td><td>5</td><td>5</td>
</tr>
<tr>
<td>6</td><td>6</td><td
class="tdClass">6</td>
</tr>
</table>
</div>
</body>
</html>
希望本文所述對大家的jQuery程序設計有所幫助。
⑺ jquery選擇器出來的是什麼類型
$("#myELement") 選擇id值等於myElement的元素,id值不能重復在文檔中只能有一個id值是myElement所以得到的是唯一的元素
$("div") 選擇所有的div標簽元素,返回div元素數組
$(".myClass") 選擇使用myClass類的css的所有元素
$("*") 選擇文檔中的所有的元素,可以運用多種的選擇方式進行聯合選擇:例如$("#myELement,div,.myclass")
層疊選擇器:
$("form input") 選擇所有的form元素中的input元素
$("#main > *") 選擇id值為main的所有的子元素
$("label + input") 選擇所有的label元素的下一個input元素節點,經測試選擇器返回的是label標簽後面直接跟一個input標簽的所有input標簽元素
$("#prev ~ div") 同胞選擇器,該選擇器返回的為id為prev的標簽元素的所有的屬於同一個父元素的div標簽
基本過濾選擇器:
$("tr:first") 選擇所有tr元素的第一個
$("tr:last") 選擇所有tr元素的最後一個
$("input:not(:checked) + span")
過濾掉:checked的選擇器的所有的input元素
$("tr:even") 選擇所有的tr元素的第0,2,4... ...個元素(注意:因為所選擇的多個元素時為數組,所以序號是從0開始)
$("tr:odd") 選擇所有的tr元素的第1,3,5... ...個元素
$("td:eq(2)") 選擇所有的td元素中序號為2的那個td元素
$("td:gt(4)") 選擇td元素中序號大於4的所有td元素
$("td:ll(4)") 選擇td元素中序號小於4的所有的td元素
$(":header")
$("div:animated")
內容過濾選擇器:
$("div:contains('John')") 選擇所有div中含有John文本的元素
$("td:empty") 選擇所有的為空(也不包括文本節點)的td元素的數組
$("div:has(p)") 選擇所有含有p標簽的div元素
$("td:parent") 選擇所有的以td為父節點的元素數組
可視化過濾選擇器:
$("div:hidden") 選擇所有的被hidden的div元素
$("div:visible") 選擇所有的可視化的div元素
屬性過濾選擇器:
$("div[id]") 選擇所有含有id屬性的div元素
$("input[name='newsletter']") 選擇所有的name屬性等於'newsletter'的input元素
$("input[name!='newsletter']") 選擇所有的name屬性不等於'newsletter'的input元素
$("input[name^='news']") 選擇所有的name屬性以'news'開頭的input元素
$("input[name$='news']") 選擇所有的name屬性以'news'結尾的input元素
$("input[name*='man']") 選擇所有的name屬性包含'news'的input元素
$("input[id][name$='man']") 可以使用多個屬性進行聯合選擇,該選擇器是得到所有的含有id屬性並且那麼屬性以man結尾的元素
子元素過濾選擇器:
$("ul li:nth-child(2)"),$("ul li:nth-child(odd)"),$("ul li:nth-child(3n + 1)")
$("div span:first-child") 返回所有的div元素的第一個子節點的數組
$("div span:last-child") 返回所有的div元素的最後一個節點的數組
$("div button:only-child") 返回所有的div中只有唯一一個子節點的所有子節點的數組
表單元素選擇器:
$(":input") 選擇所有的表單輸入元素,包括input, textarea, select 和 button
$(":text") 選擇所有的text input元素
$(":password") 選擇所有的password input元素
$(":radio") 選擇所有的radio input元素
$(":checkbox") 選擇所有的checkbox input元素
$(":submit") 選擇所有的submit input元素
$(":image") 選擇所有的image input元素
$(":reset") 選擇所有的reset input元素
$(":button") 選擇所有的button input元素
$(":file") 選擇所有的file input元素
$(":hidden") 選擇所有類型為hidden的input元素或表單的隱藏域
表單元素過濾選擇器:
$(":enabled") 選擇所有的可操作的表單元素
$(":disabled") 選擇所有的不可操作的表單元素
$(":checked") 選擇所有的被checked的表單元素
$("select option:selected") 選擇所有的select 的子元素中被selected的元素
選取一個 name 為」S_03_22″的input text框的上一個td的text值
$(」input[@ name =S_03_22]「).parent().prev().text()
名字以」S_」開始,並且不是以」_R」結尾的
$(」input[@ name ^='S_']「).not(」[@ name $='_R']「)
一個名為 radio_01的radio所選的值
$(」input[@ name =radio_01][@checked]「).val();
$("A B") 查找A元素下面的所有子節點,包括非直接子節點
$("A>B") 查找A元素下面的直接子節點
$("A+B") 查找A元素後面的兄弟節點,包括非直接子節點
$("A~B") 查找A元素後面的兄弟節點,不包括非直接子節點
⑻ jquery 數組遍歷 each n為undefined怎麼過濾
定義一個新數組,不是undefined的元素插入新數組,是的就不插入
⑼ jQuery怎樣遍歷如下數組格式
在jQuery是遍歷篩選數組有多種方法與函數了,包括有:grep、each、inArray、map同時也要以遍歷json對象哦,下面給各位同學介紹一下具體的操作方法。
grep
grep()方法用於數組元素過濾篩選
grep(array,callback,invert)
array:待過濾數組;
callback:處理數組中的每個元素,並過濾元素,該函數中包含兩個參數,第一個是當前數組元素的值,一個是當前數組元素的下標,即元素索引值。此函數應返回一個布爾值。另外,此函數可設置為一個字元串,當設置為字元串時,將視為「lambda-form」(縮寫形式?),其中 a 代表數組元素,i 代表元素索引值。如「a > 0」代表「function(a){ return a > 0; }」
invert:布爾型可選項,默認值false,值為true或false, 如果 「invert」 為 false 或為設置,則函數返回數組中由過濾函數返回 true 的元素,當」invert」 為 true,則返回過濾函數中返回 false 的元素集
<script type='text/JavaScript' src="/jquery.js"></script>
<script type="text/javascript">
$().ready(
function(){
var array = [1,2,3,4,5,6,7,8,9];
var filterarray = $.grep(array,function(value){
return value > 5;//篩選出大於5的
});
for(var i=0;i<filterarray.length;i++){
alert(filterarray[i]);
}
for (key in filterarray){
alert(filterarray[key]);
}
}
);
</script>
each
each的使用方法
在jQuery里有一個each方法,用起來非常的爽,不用再像原來那樣寫for循環,jQuery源碼里自己也有很多用到each方法。
其實jQuery里的each方法是通過js里的call方法來實現的。
<script type='text/javascript' src="/jquery.js"></script>
<script type="text/javascript">
$().ready(
function(){
var anObject = {one:1,two:2,three:3};//對json數組each
$.each(anObject,function(name,value) {
alert(name);
alert(value);
});
var anArray = ['one','two','three'];
$.each(anArray,function(n,value){
alert(n);
alert(value);
}
);
}
);
</script>
inArray
jQuery.isArray(obj) 是 jQuery 1.3 新增。測試對象是否為數組。 返回值:Boolean
參數 : objObject用於測試是否為數組的對象
示例 :檢測是否為數組
<script type='text/javascript' src="/jquery.js"></script>
<script type="text/javascript">
$().ready(
function(){
var anArray = ['one','two','three'];
var index = $.inArray('two',anArray);
alert(index);//返回該值在數組中的鍵值,返回1
alert(anArray[index]);//value is two
}
);
</script>
map
map() 把每個元素通過函數傳遞到當前匹配集合中,生成包含返回值的新的 jQuery 對象。
由於返回值是 jQuery 封裝的數組,使用 get() 來處理返回的對象以得到基礎的數組。
.map() 方法對於獲得或設置元素集的值特別有用。請思考下面這個帶有一系列復選框的表單
<script type='text/javascript' src="/jquery.js"></script>
<script type="text/javascript">
$().ready(
function(){
var strings = ['0','1','2','3','4','S','6'];
var values = $.map(strings,function(value){
var result = new Number(value);
return isNaN(result) ? null:result;//isNaN:is Not a Number的縮寫
}
);
for (key in values) {
alert(values[key]);
}
}
);
</script>
遍歷json對象
<script>
var json = [{dd:'SB',AA:'東東',re1:123},{cccc:'dd',lk:'1qw'}];
for(var i=0,l=json.length;i<l;i++){
for(var key in json[i]){
alert(key+':'+json[i][key]);
}
}
</script>
var obj ={」name」:」馮娟」,」password」:」123456″,」department」:」技術部」,」sex」:」 女」,」old」:30};
遍歷方法:
for(var p in obj){
str = str+obj[p]+',';
return str;
}
⑽ jquery 對象數組的過濾
var a = $.grep(temp,function(n,i){
return parseInt(n.value)>1 && parseInt(n.value)<4
});