选择器(一):基本选择器

基本选择器

基本选择器主要包括5中类型:id选择器、类型选择器、类选择器、通配选择器、分组选择器
ID选择器
JavaScript提供了原生的方法getElementById(),实现DOM中选择指定ID值的元素。该方法返回所匹配元素的对象

 var el=document.getElementById("id");

jQuery通过一个简单的"#"标识前缀快速匹配指定ID的元素对象。返回值为包含匹配id的元素的jQuery对象

 $('#id')

jQuery的缺点:

  1. 执行效率较低,在不是很必须的前提下可以直接考虑使用Document对象的getElementById()方法获取id元素
  2. jQuery使用正则表达式来匹配参数值,而正则表达式对于特殊字符(点、冒号等)是敏感的,要避免正则表达式被误解,要使用双斜杠来转义字符。如果直接使用Document对象的getElementById()方法不存在这个问题
$(function(){
   	//jquery方式
   	$('#a\\.b').css('color','red');
   	$('#a\\:b').css('color','red');
   	$('#\\[div\\]').css('color','red');
   	//原生方式
   	document.getElementById('a.b').style.color='red';
   	document.getElementById('a:b').style.color='red';
   	document.getElementById('[div]').style.color='red';
   })

类型选择器
JavaScript使用getElementsByTagName在DOM中选择指定类型的元素,该方法返回所选类型元素的集合

 var el=document.getElementsByTagName("tagName")

jQuery:直接指定标签名称即可,返回值为包含匹配标签的jQuery对象

 $('element')

优点:以设置样式为例,jQuery可以直接为所有标签设置样式;原生则需要使用循环语句遍历返回的元素集合,并逐一设置

$(function(){
  	//jquery
  	$('div').css('color','red');
  	//原生
  	var divs=document.getElementsByTagName('div');
  	for (var i=0;i<divs.length;i++){
  		divs[i].style.color='red';
  	}
  })

缺点: 在匹配标签时效率较低
类选择器
JavaScript:HTML5新增getElementsByClassName()方法用于选择指定类名的元素,多个类名之间通过空格分隔,不分先后顺序,返回带有指定类的所有元素的集合

document.getElementsByClassName()

jQuery:类选择器的字符串前面需要附加标识前缀(点)

 $('.className')

例:匹配类名是red和blue的标签,设置字体颜色为蓝色

<body>
	<div class="red blue">1</div>
	<div class="red blue">2</div>
	<script type="text/javascript">
		$(function() {
			//原生
			var cl = document.getElementsByClassName('red blue');
			for(var i = 0; i < cl.length; i++) {
				cl[i].style.color = 'blue';
			}
			//jquery
			$('.red.blue').css('color', 'blue');
		})
	</script>
</body>

通配选择器
JavaScript:如果把特殊字符串"*"传递给getElementsByClassName方法,将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序

var el=document.getElementsByTagName("*");

jQuery:

$('*')

分组选择器
jQuery可以选择多组元素,通过逗号来分隔多个不同的选择器,这些选择器可以是任意类型,甚至是符号选择器
例:

$("h2,#div,.red,[title]='text'").css('color','red')

混合使用
对于一般情况jQuery和JavaScript可以混合使用,这样可以简化代码,并且可以提高一些效率
例:匹配所有标签,将所有标签中的字体设置为红色

$(function() {
	var all = document.getElementsByTagName('*');
	$(all).css('color', 'red');
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值