簡體   English   中英

帶有jquery數組的.grep()只返回最后一位數字

[英].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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM