我有以下代码,应该使偶数行为蓝色(布局-2具有蓝色背景)。我不希望这对于带有'add-task'类的表行有效。出于某种原因,即使它不应该,代码仍然会变成添加任务蓝色。我该如何解决这个问题?
var it = $('.add-task');
if (it.className == 'add-task'){
}
else{
$('table tbody tr:even').addClass('layout-2');
}
答案 0 :(得分:1)
it
是一个jQuery对象,而不是DOM节点。 jQuery有一个有用的hasClass
方法,您可以使用:
var it = $('.add-task');
if (it.hasClass('add-task')) {
...
} else {
...
};
答案 1 :(得分:0)
您必须使用.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');
}
答案 2 :(得分:0)
请记住,jquery返回一个dom元素数组。假设它是该类中唯一的元素,it[0].className == 'add-task'
将会做到这一点。如果元素是唯一的,请考虑使用id。
答案 3 :(得分:0)
className不起作用,因为jQuery在辅助类中包装DOM元素以使它们更易于使用。但是,您可以将条件直接构建到选择器中:
$('table tbody tr:even not:(.add-task)').addClass('layout-2');