2012-07-08 77 views
6

我有div對象的jQuery - 刪除一個類,它是在一個數組

<div class="class1 classA classB class2"> content </div> 

和一些按鈕

<button id="numbers">clickme N </button> 

<button id="alphas">clickme A </button> 

的代碼應該做此功能:

<script> 
    var classesN = [class1, class2, class3]; 
    var classesAlpha = [classA, classB, classC]; 

    $('#alphas').click(function() { 
     $('div').removeClass(all classes that are in the classesAlpha array); 
    }); 
    $('#numbers').click(function() { 
     $('div').removeClass(all classes that are in the classesN array); 
    }) 
</script> 

由於對於任何建議,我希望你喜歡這個問題:)

+2

爲什麼在括號和標記標識符之間有空格?在IE,Firefox和Chrome上測試。我不知道你使用的是什麼編輯器或IDE,但它正在吐出無效的HTML。 – Daedalus 2012-07-08 06:55:25

+0

我可能沒有正確格式化代碼 – thednp 2012-07-08 06:58:20

+0

http://stackoverflow.com/questions/11279835/delete-all-classes-after-a-certain-class ?? ':)'類似的,嗯 – 2012-07-08 07:01:45

回答

8
var classesN = ["class1", "class2", "class3"]; 
var classesAlpha = ["classA", "classB", "classC"]; 

$('#alphas').click(function() { 
    var $div = $('div'); 
    $.each(classesAlpha, function(i, v){ 
     $div.removeClass(v); 
    }); 
}); 

DEMO

+0

我也喜歡這個答案,我現在不能決定:| – thednp 2012-07-08 07:13:12

+1

所以艾將選擇這一個作爲最好的。恭喜@undefined,你再次得分 – thednp 2012-07-08 07:27:22

+0

驗證碼100%有效yeeey – thednp 2012-07-08 07:44:29

13

.removeClass([className]):classNameOne或更多空格分隔類要從每個匹配元素的class屬性中移除。

因此,將要刪除的所有類加入空格分隔列表。

var classesN = [class1, class2, class3]; 
var classesAlpha = [classA, classB, classC]; 

$('#alphas').click(function() { 
    $('div').removeClass(classesAlpha.join(' ')); 
}); 
$('#numbers').click(function() { 
    $('div').removeClass(classesN.join(' ')); 
}); 
+1

原始代碼暗示數組應該是字符串數組,但即使在原始代碼中它們也不是。如果它們是表示字符串的變量,這將起作用,但我懷疑原始問題應該將它們作爲字符串數組。 – 2012-07-08 07:02:56

+0

他們必須是**的東西,我很舒服,假設他只是不認爲包括括號,因爲真的沒有很多明智的選擇。任何其他原語都有一個原因.toString()。對象?什麼? – Sinetheta 2012-07-08 07:04:26

+0

這聽起來很有趣,會馬上檢查:) – thednp 2012-07-08 07:05:12

1

,或者可以不陣列和join()函數。只需要將變量類別分配到變量

var classesN = "class1 class2 class3"; 
var classesAlpha = "classA classB classC"; 

$('#alphas').click(function() { 
    $('div').removeClass(classesAlpha); 
}); 
$('#numbers').click(function() { 
    $('div').removeClass(classesN); 
}); 
相關問題