2017-05-27 66 views
0

此代碼塊有什麼問題?它只會選擇包含說明的第一個元素,但不會全選。爲什麼?我錯過了什麼?作爲一個getter使用,將從第一個元素集合中總是返回時類^ ='指令'...只選擇以類開頭的第一個元素應全選

jQuery(document).ready(function() { 

    jQuery('select').select2(); 

    // get a list of objects that begin with instructions 
    var classList = jQuery('a[class^="instructions"]').attr('class').split(/\s+/); 
    console.log(classList); 
    jQuery.each(classList, function (index, item) { 
     jQuery('.'+item+'-'+index).click(
      function (event) { 
       event.preventDefault(); 
       jQuery(this).parent().next().toggle(); 
      } 
     ); 
    }); 
}); 
+2

不能保證類特定的字符串開始時的元素有多個類。 – Tushar

+1

順便說一句,有一個類名單已經屬性 - 不需要自定義拆分。 – Sirko

+0

最好使用數據屬性來處理這類事情,其中​​可以控制和依賴訂單。 – Utkanos

回答

0

attr()只能從一個元素返回值。

你需要映射你自己的數組的所有元素類似:

var classList = jQuery('a[class^="instructions"]').map(function(){ 
    return $(this).attr('class'); 
}).get();