如何创建CSS类数组,而不是CSS类名?我需要“。”和一切。
我需要用户能够点击某些按钮,并将按钮所属的类添加到数组中。
之前我用过这个:
var myPicks[];
$('.button').click( function() {
var hello = " " + $(this).attr('class').split(' ')[0];
myPicks.push(hello);
}
但是这似乎添加了类的名称,而不是类本身。我可能错了,我的JQuery代码的另一部分出了问题。
答案 0 :(得分:0)
尝试
var myPicks = [];
$('.button').click( function() {
Array.prototype.push.apply(myPicks, $.map($(this).attr('class').split(' '), function(value, idx){
return '.' + value
}))
console.log('myPicks', myPicks)
});
如果您只想要唯一的课程
var myPicks = [];
$('.button').click( function() {
$.each($(this).attr('class').split(' '), function(idx, value){
var selector = '.' + value;
if($.inArray(selector, myPicks) == -1){
myPicks.push(selector)
}
})
console.log('myPicks', myPicks)
});
演示:Fiddle
答案 1 :(得分:0)
我不建议保存包含在该数组中的点的类的名称(),如果稍后需要其他内容,则无用。 (或者你的goint需要再次拆分)
相反,我建议您像现在一样保存它,然后,只有当您需要时,将点添加到该值
像:
var myPicks = new Array();
myPicks[0] = "something";
// original value:
var newValue = myPicks[0]; // newValue == 'something'
//used as ID:
var newValue = '#' + myPicks[0]; // newValue == '#something'
// used as a class:
var newValue = '.' + myPicks[0]; // newValue == '.something'
但是,当然如果您需要这种方式......只需替换PUSH
函数并将点添加到其中:
var newHello = '.' + hello;
myPicks.push(newHello);