如果我有一個div,其中有多個類分配給class
屬性,是否可以使用jQuery中的each()
函數遍歷它們?遍歷同一元素上的類
<div class="class1 differentclassname anotherclassname"><div>
如果我有一個div,其中有多個類分配給class
屬性,是否可以使用jQuery中的each()
函數遍歷它們?遍歷同一元素上的類
<div class="class1 differentclassname anotherclassname"><div>
在JavaScript中,得到的類列表,你可以使用
.className.split(' ')
,返回Array
.classList
,返回DOMTokenList
在jQuery中,你可以使用.prop()
可獲得className
或classList
屬性。
要迭代它們,你可以使用:
for
循環,例如for(var i=0; i<classes.length; ++i)
for...of
loop,例如, for(var cl of classes)
。forEach
,僅適用於陣列,例如, classes.forEach(fn)
$.each
,例如, $.each(classes, fn)
如果使用classList
但想用forEach
迭代,你可以使用
[].slice.call(classes)
Array.from(classes)
這樣有幫助的詳細瞭解!謝謝 –
請記住,JavaScript中的forEach是IE9 +,我總是被捕獲使用它,並且我很難理解爲什麼我的代碼在舊版瀏覽器中被破壞。 +1的詳細答案:) – Prusprus
那麼哪個prop()是正確的? '.prop('class')'或'.prop('className')'或'.prop('classList')' –
首先,你需要獲得一個包含有類的字符串:
$('div').attr('class');
,並用空格分開它來獲取一個數組:
$('div).attr('class').split(' ');
,然後使用數組作爲$ .each函數的第一個參數,其中索引和值可以幫助您獨立處理它
$.each($('div').attr('class').split(' '), function(index, value) {
console.log('Class name ' + value);
});
更好:' $( 'DIV).attr(' 類)。split('\ s +');'如果class屬性有多個連續空格或其他空格字符。 –
像'$的
DOMTokenList
轉換成Array
('div')。prop('className')。split('').forEach(fn)'? – undefined@undefined我更新了我的問題,因爲我忘記說我不知道將使用的類名稱,因爲他們被放在dynmacially –
@CurtisCrewe - 這應該不會影響什麼undefined說(你分割className屬性,然後通過列表進行forEaching。應該可以正常工作(即使您之前不知道類名稱) – Jack