当你使用点击然后this
referce你点击的H2,使用.parent()
(或.closest( '容器'),然后使用你的样子了:
http://jsfiddle.net/gSCQ7/7/
var highlight = "highlight";
$('.container h2').click(function(){
var hasSubCategorys = $(this).parent().find(".sub-cat").length > 0;
$(this)[hasSubCategorys ? 'addClass' : 'removeClass'](highlight);
});
,或者如果你想让它更易读:
var highlight = "highlight";
$('.container h2').click(function(){
var hasSubCategorys = $(this).parent().find(".sub-cat").length > 0;
if(hasSubCategorys) {
$(this).addClass(highlight);
} else {
$(this).removeClass(highlight);
}
});
编辑:http://jsfiddle.net/gSCQ7/10/改变CSS代码更具体然后.container h2
VS .hightlight
标题(h2)在您的链接中重复两次。请参考h2 – matthewb
上的类(.highlight)属性来添加是的,它只是表明如果你有一个没有.sub-cat的容器,那么它不会为h2元素添加一个高亮类。如果它不是你想要的,那么请解释你想要你的代码做什么。因为你当前的代码缺少变量'highlight'。 – voigtan
是的,我得到了你的观点,感谢很多完美的答案。 – matthewb