[英].grep() with jquery array returns just last digit
任何人都可以解釋jQuery .grep()的這種行為
我用這個元素名稱創建了一個jQuery對象數組:
<div class="small1 other">S1</div>
<div class="small2">S2</div>
<div class="small3">S3</div>
<div class="small4 other">S4</div>
<div class="small5">S5</div>
<div class="small6">S6</div>
然后運行each
一個.grep()
內部函數。
讓我感到奇怪就是為什么執行console.log()記錄1
/ 2
/ 3
等,並沒有small1
/ small2
/ small3
,等...
$('div[class^="small"').each(function () {
var this_class = $(this).prop('class');
var filter = $.grep(this_class, function (a) {
return a ^= 'small';
});
console.log(filter[0]);
});
a ^= 'small';
是不是,你似乎認為,運營商講,如果a
與啟動'small'
,但
a = a ^ 'small'
返回
a ^ 'small'
當a
無法轉換為數字時為0
。
你所做的是將字符串中的字符數組作為字符串過濾,然后返回第一個作為數字的字符,從而得到結果。
在第一次迭代中,您的過濾相當於
$.grep(["s", "m", "a", "l", "l", "1"], function(a) { return a ^='somestring' })
返回
['1']
如果你想得到所有以'small'開頭的課程,那就去吧
$('div[class^="small"').each(function(){
var filter = $.grep(this.className.split(' '), function(a) {
return a.indexOf('small')===0;
});
console.log(filter);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.