选择器(三):属性选择器、表单选择器、原生选择器

属性选择器

属性选择器主要是根据元素的属性及其属性值作为过滤的条件,来匹配对应的DOM元素。属性选择器都是以中括号作为起止分界符,如[attribute]
属性选择器:

[attribute]: 匹配给定属性的元素,例:$("div[id]"),查找含有id属性的div元素
[attribute=value]: 匹配属性等于特定值的元素。例:$("input[name='text']"),查找name属性值是'text'的input元素
[attribute!=value]: 匹配不含有值得属性或者属性不等于特定值的元素
[attribute^=value]: 匹配给定的属性是以某些值开始的元素,例:$("input[name^='text']"),匹配name属性值是以'text'开始的input元素
[attribute$=value]: 匹配给定的属性是以某些值结尾的元素
[attribute*=value]: 匹配给定的属性是包含某些值的元素,例$("input[name*='text']"),匹配name属性值是包含'text'字符串的input元素
[selector1][selector2][selectorN]: 复合选择器,需要同时满足多个条件时使用,例如:$("input[name*='text'][id]"),匹配name属性值是包含'text'字符串,并且包含id属性的input元素

例:根据超链接文件的类型,分别为不同类型的文件添加类型文件的图标

<a href="1.pdf">参考手册.pdf</a><br />
<a href="2.rar">压缩包.rar</a><br />
<a href="http://www.baidu.com">百度</a><br />
<script type="text/javascript">
	$(function(){
		var a1=$("a[href$='.pdf']");
		a1.html(function(){
			"<img src='image/pdf.png' />"+$(this).attr("hred")
		});
		var a2=$("a[href$='.rar']");
		a2.html(function(){
			"<img src='image/rar.png' />"+$(this).attr("hred")
		});
		var a3=$("a[href^='http:']");
		a3.html(function(){
			"<img src='image/html.png' />"+$(this).attr("hred")
		});
	})
</script>

表单选择器

基本表单选择器
用于获取页面中的表单类型元素

:input       匹配所有input、textarea、select和button元素
:text        匹配所有单行文本
:password    匹配所有密码框
:radio       匹配所有单选按钮
:checkbox    匹配所有复选按钮
:submit      匹配所有提交按钮
:image       匹配所有的图像域
:reset       匹配所有的重置按钮
:button      匹配所有按钮
:file        匹配所有文件域
:hidden      匹配所有不可见元素,或者type为hidden的元素

例:使用表单选择器控制实现交互操作,快速选择这些表单域,并修改它们的value值

<form action="" method="post" id="test">
	<input type="text" value="文本域" /><br />
	<input type="password" value="密码域" />
	<input type="submit" value="提交"/><br />
</form>
<script type="text/javascript">
	$(function(){
		$("#test :text").val("修改后的文本域");
		$("#test :password").val("修改后的密码域");
	})
</script>

高级表单选择器
jQuery根据表单域特有的属性定义了4个表单属性选择器,这些选择器与基本表单选择器不同,它们可以选择任何类型的表单域,因为它主要是根据表单属性来进行选则

:enabled    匹配所有可用元素   
:disabled   匹配所有不可用元素
:checked    匹配所有被选中的元素(复选框、单选框等,不包括select中的option)
:selected   匹配所有选中的option元素

例:

<form action="" method="post" id="test">
	<input type="text" value="文本域" disabled="disabled"/><br />
	<input type="checkbox" value="复选框" checked="checked"/>
	<input type="submit" value="提交"/><br />
</form>
<script type="text/javascript">
	$(function(){
		$("#test :disabled").val("不可用");
		$("#test :checked").removeAttr("checked");
	})
</script>

原生选择器

DOM API模块的核心方法是querySelector和querySelectorAll,这两个方法能够根据CSS选择器规范,便捷的定位文档中的指定元素。其支持的浏览器包括IE8+、Firefox、Chrome、Safari和Opera
两个方法的参数必须是符合CSS选择器规范的字符串,前者返回第一个匹配的元素对象,后者返回匹配的元素集合

例:

<div class="content">
	<ul>
		<li>首页</li>
		<li class="blue">娱乐</li>
		<li class="red">财经</li>
		<li class="blue">时尚</li>
		<li class="red">互联网</li>
	</ul>
</div>

获取第一个li元素

document.querySelector("content ul li")
或
document.querySelectorAll("content ul li")[0]

获取所有的li元素

document.querySelectorAll("content ul li")

获取class为red的li元素

document.querySelector("li.red")

除此之外DOM API模块中也包括getElementsByClassName方法,用于获取指定类名的元素。参数为字符串,且为类名,而且不需要加点号前缀,如果没有匹配到任何元素则返回空数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无知的小菜鸡

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

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

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

打赏作者

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

抵扣说明:

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

余额充值