我有下面的代码,应该使偶数行变成蓝色(布局-2有蓝色的背景)。我不希望这种方法适用于带有类“”的表行。由于某些原因,代码仍然会变成添加任务的蓝色,尽管它不应该。我如何解决这个问题?
var it = $('.add-task');
if (it.className == 'add-task'){
}
else{
$('table tbody tr:even').addClass('layout-2');
}发布于 2014-02-04 19:22:30
className无法工作,因为jQuery将DOM元素封装在帮助器类中,以使它们更易于使用。但是,可以将条件直接构建到选择器中:
$('table tbody tr:even not:(.add-task)').addClass('layout-2');发布于 2014-02-04 19:17:56
it是一个jQuery对象,而不是DOM节点。jQuery有一个有用的hasClass方法,您可以使用:
var it = $('.add-task');
if (it.hasClass('add-task')) {
...
} else {
...
};发布于 2014-02-04 19:16:23
您必须使用.attr('class')来获取所选元素的类。或者可以使用.hasClass('className')检查所选元素是否具有该类。
试试看
var it = $('.add-task');
//But .hasClass() should be a recommended one here
if(it.attr('class').indexOf('add-task') > -1){
$('table tbody tr:even').addClass('layout-2');
}或者您可以使用.toggleClass('className',switch)
$('table tbody tr:even').toggleClass('layout-2',it.hasClass('add-task'));或者可以使用本机JS对象,
var it = $('.add-task');
if(it[0].className).indexOf('add-task') > -1){
$('table tbody tr:even').addClass('layout-2');
}https://stackoverflow.com/questions/21561352
复制相似问题