多DOM元素任一存在时简化body添加addClass方法的技术问询
更简洁的实现方式
当然有更清爽的写法啦!你可以利用jQuery的多选择器语法,把所有需要判断的DOM元素选择器合并成一个,只需要一次判断就能完成逻辑:
// 合并选择器,一次判断搞定 if ($('.blog-entry, .contact-form, .fileshare').length) { $('body').addClass('stock-plugin'); }
原理说明:
- jQuery支持用逗号分隔多个选择器,这会匹配所有符合任意一个选择器的元素
- 只要其中任意一个目标元素存在,
length属性就会大于0(在条件判断里非0值会被视为true),所以直接判断length就行,不用写> 0
如果追求极致简洁,还可以用短路求值的写法,一行搞定:
$('.blog-entry, .contact-form, .fileshare').length && $('body').addClass('stock-plugin');
这种写法和之前的逻辑完全一致,但省去了if语句,代码更紧凑,同时可读性也没打折扣~
内容的提问来源于stack exchange,提问作者KulerGary
相关产品推荐
相关产品推荐

