jquery选择器众多,使用选取某个DOM的方法有很多种,如何在选取的某个元素集上面做一些排除呢?下面通过几个实例说明:
1.选择所有的img元素,排除class=phpernote的元素的个数:
$(\'img:not(.phpernote)\').length();//或者$(\'img\').not(\'.phpernote\').length();
2.获取id=phpernote下面所有没有class=com的li元素的个数
$(\'#phpernote li:not(.com)\').size();//或者$(\'#phpernote li\').not(\'.com\').length();
3.设置id=phpernote下面所有奇数行的li元素的背景
$(\'#phpernote li\').not(\':even\').css(\'background-color\', \'red\');
附实例:jQuery中排除指定元素,同时选择剩下的所有元素
场景:某页面用了js延时加载技术处理所有图片,以改善用户体验,但是有几个图片不想延时加载,要求把它们单独挑出来。
研究了一下jQuery的API文档,搞掂了,jQuery真的很方便,贴在这里备份:
<!doctype html>
<html>
<head>
<title>菩提树下的杨过</title>
<script type=\"text/javascript\" src=\"http://img.24city.com/js/jquery-1.4.3.min.js\"></script>
<script type=\"text/javascript\">
$().ready(function(){
$(\"div:not([delay=\'false\'])\").css(\"color\",\"#f00\");
})
</script>
</head>
<body>
<div>div 1</div>
<div delay=\"false\">div 2</div>
<div>div 3</div>
</body>
</html>
上面的代码,将把有附加属性\"delay\",且等于\"false\"的div排除掉,然后把剩下的div全选中,并设置为红色字体。