jQuery选择器
基本选择器
-
#id : id选择器
-
/* 需求: 1. 选择id为div1的元素 */ $('#div1').css('background','red');
-
element : 元素选择器
-
/* 2. 选择所有的div元素 */ $('div').css('background','blue');
-
-
.class : 属性选择器
-
/* 3. 选择所有class属性为box的元素 */ $('.box').css('background','yellow');
-
-
*
: 任意标签 -
selector1,selector2,selectorN : 取多个选择器的并集(组合选择器)
-
/* 4. 选择所有的div和span元素 */ $('div,span').css('background','black');
-
-
selector1selector2selectorN : 取多个选择器的交集(相交选择器)
-
/* 5. 选择所有class属性为box的div元素 */ $('div.box').css('background','red')
-
-
层次选择器
-
层次选择器: 查找子元素, 后代元素, 兄弟元素的选择器
-
ancestor descendant
在给定的祖先元素下匹配所有的后代元素/* 需求: 1. 选中ul下所有的的span */ $('ul span').css('background','red');
-
parent>child
在给定的父元素下匹配所有的子元素/* 2. 选中ul下所有的子元素span */ $('ul>span').css('background','red');
-
prev+next
匹配所有紧接在 prev 元素后的 next 元素/* 3. 选中class为box的下一个li */ $('.box+li').css('background','red');
-
prev~siblings
匹配 prev 元素之后的所有 siblings 元素/* 4. 选中ul下的class为box的元素后面的所有兄弟元素 *代表的是前面的ul */ $('ul .box~*').css('background','yellow');
-
-
<ul> <li>AAAAA</li> <li class="box">CCCCC</li> <li title="hello"><span>BBBBB</span></li> <li title="hello"><span>DDDD</span></li> <span>EEEEE</span> </ul>
过滤选择器
<ul>
<li>AAAAA</li>
<li title="hello">BBBBB</li>
<li class="box">CCCCC</li>
<li title="hello">DDDDDD</li>
<li title="two">BBBBB</li>
<li style="display:none">我本来是隐藏的</li>
</ul>
-
在原有选择器匹配的元素中进一步进行过滤的选择器
- 基本
- 内容
- 可见性
- 属性
过滤
:first
:last
:eq(index)
:lt
:gt
:odd
:even
:not(selector)
:hidden
:visible
需求
-
选择第一个div
$('div:first').css('background','red');
-
选择最后一个class为box的元素
$('.box:last').css('background','yellow');
-
选择所有class属性不为box的div
$('div:not(.box)').css('background','blue');
-
选择第二个和第三个li元素
$('li:gt(0):lt(2)').css('background','red');//注意这里的lt不能为3 否则则如下图所示 选中三个li
$('li:lt(3):gt(0)').css('background','red');
-
选择内容为BBBBB的li
$('li:contains("BBBBB")').css('background','red');
-
选择隐藏的li
console.log($('li:hidden').length,$('li:hidden')[0]);
-
选择有title属性的li元素
$('li[title]').css('background','red');
-
选择所有属性title为hello的li元素
$('li[title="hello"]').css('background','red');
表格隔行变色
<table id="data">
<thead>
<tr>
<th>姓名</th>
<th>工资</th>
<th>入职时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tom</td>
<td>$3500</td>
<td>2010-10-25</td>
<td><a href="javascript:void(0)">删除</a></td>
</tr>
<tr>
<td>Mary</td>
<td>$3400</td>
<td>2010-12-1</td>
<td><a href="javascript:void(0)">删除</a></td>
</tr>
<tr>
<td>King</td>
<td>$5900</td>
<td>2009-08-17</td>
<td><a href="javascript:void(0)">删除</a></td>
</tr>
<tr>
<td>Scott</td>
<td>$3800</td>
<td>2012-11-17</td>
<td><a href="javascript:void(0)">删除</a></td>
</tr>
<tr>
<td>Smith</td>
<td>$3100</td>
<td>2014-01-27</td>
<td><a href="javascript:void(0)">删除</a></td>
</tr>
<tr>
<td>Allen</td>
<td>$3700</td>
<td>2011-12-05</td>
<td><a href="javascript:void(0)">删除</a></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
$('#data>tbody>tr:odd').css('background-color','#ccccff');
</script>
$('#data>tbody>tr:odd').css('background-color','#ccccff');
标签选择器
<form>
用户名: <input type="text"/><br>
密 码: <input type="password"/><br>
爱 好:
<input type="checkbox" checked="checked"/>篮球
<input type="checkbox" checked="checked"/>足球
<input type="checkbox" checked="checked"/>羽毛球 <br>
性 别:
<input type="radio" name="sex" value='male'/>男
<input type="radio" name="sex" value='female'/>女<br>
邮 箱: <input type="text" name="email" disabled="disabled"/><br>
所在地:
<select>
<option value="1">北京</option>
<option value="2" selected="selected">天津</option>
<option value="3">河北</option>
</select><br>
<input type="submit" value="提交"/>
</form>
-
需求
-
1.选择不可用的文本输入框
$(':text:disabled').css('background','red');
-
2.显示选择爱好 的个数
console.log($(':checkbox:checked').length);
-
3.显示选择的城市名称
$(':submit').click(function(){ var city=$('select>option:selected').html();//选择的option的标签文本 city=$('select').val() //选择的option的value属性 alert(city); });
-
`
-
2.显示选择爱好 的个数
console.log($(':checkbox:checked').length);
-
3.显示选择的城市名称
$(':submit').click(function(){ var city=$('select>option:selected').html();//选择的option的标签文本 city=$('select').val() //选择的option的value属性 alert(city); });
来源:https://blog.csdn.net/Aqours/article/details/100856314