Cha*_*her 9 html javascript jquery dom class
我试图检查一个元素是否有一个数组的类,如果是这样,该类的值是什么.目前我正在使用:
if ($(this).hasClass('purple_grad')) {
$thisFKeyColour = 'purple_grad';
} else if ($(this).hasClass('red_grad')) {
$thisFKeyColour = 'red_grad';
} else if ($(this).hasClass('green_grad')) {
$thisFKeyColour = 'green_grad';
} else if ($(this).hasClass('blue_grad')) {
$thisFKeyColour = 'blue_grad';
} else if ($(this).hasClass('yellow_grad')) {
$thisFKeyColour = 'yellow_grad';
} else if ($(this).hasClass('light_yellow_grad')) {
$thisFKeyColour = 'light_yellow_grad';
} else if ($(this).hasClass('lighter_yellow_grad')) {
$thisFKeyColour = 'lighter_yellow_grad';
} else if ($(this).hasClass('grey_grad')) {
$thisFKeyColour = 'grey_grad';
} else if ($(this).hasClass('light_grey_grad')) {
$thisFKeyColour = 'light_grey_grad';
} else if ($(this).hasClass('black_grad')) {
$thisFKeyColour = 'black_grad';
}
}
alert($thisFKeyColour);
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?就像是:
if (in_array(classes, element.attr('class'))) {
$thisFKeyColour = Class_Of_Element_That_Matched_Array;
}
Run Code Online (Sandbox Code Playgroud)
另外,我不能只返回.attr('class'),因为它们是元素上的多个类.
干杯
查理
kar*_*m79 10
以下应该做(未经测试):
var elementClasses = $(this).attr("class").split(" ");
for(var i = 0; i < elementClasses.length; i++) {
if($.inArray(elementClasses[i], classes)) {
$thisFKeyColour = classes[i];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
参考:
http://api.jquery.com/jQuery.inArray/
cols是你的类名数组.这是未经测试的,但无论元素具有多少类,它都将起作用.
for ( var i = 0; i < cols.length; i++ )
{
if ( $(this).hasClass( cols[i] ) )
{
$thisFKeyColour = cols[i];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13230 次 |
| 最近记录: |