常用选择器
Basics
$(‘code’) ——元素选择器
JavaScript原生方法实现在DOM中选择指定类型元素
document.getElementsByTagName("tagName")
jQuery简化后
$("p") — 选择<p>标签元素
$("div") — 选择<div>标签元素
$(’#myid’) ——id选择器
JavaScript原生方法实现在DOM中选择指定id值的元素
document.getElementById("id")
jQuery简化后
$("#test") — 选择id为“test”的标签元素
$("#demo") — 选择id为“demo”的标签元素
$(’.myclass’) ——类选择器
JavaScript没有提供内置的类选择方法
jQuery简化后
$(".test") — 选择class为“test”的标签元素
$(".index") — 选择class为“index”的标签元素
$(’*’) ——通配选择器
$("*") — 选择所有的元素 //设置的css会作用在所有的元素之上 包括body
$(‘code, #myid, .myclass’) ——分组选择器
css样式或是事件将发生在所有`<code>`标签元素上,id为myid还有class为myclass的元素上
Hierarchy
$(‘div code’)
选择匹配<div>
后代里所有<code>
元素
<html>
<head>
<title>JQuery selector</title>
</head>
<body>
<div>
<code>something test1</code>
<p>test</p>
<code>something test2</code></br>
<code>something test3</code>
</div>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('div code').css('backgroundColor','yellow');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
$(‘parent>child’)
前一个元素为父元素,后一个为子元素,匹配前一个元素的所有后一个子元素,且为直接子元素
<html>
<head>
<title>JQuery selector</title>
</head>
<body>
<div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<div>
<li>这个不会被选到</li>
</div>
</ul>
<li>这个不会被选到</li>
</div>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('ul>li').css('backgroundColor','yellow');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
注意 区别在于子元素必须是父元素的直接子元素,例子中,第一个<li>
不是<ul>
的直接子元素,所以未被选中
$('prev + next ')
选择prev的紧跟的第一个元素
<html>
<head>
<title>JQuery selector</title>
</head>
<body>
<div>
<p class="test">test</p>
<p>test2</p>
<p>test3</p>
<h3>test5</h3>
<p>test4</p>
</div>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('.test+p').css('backgroundColor','yellow');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
只选择到了test2这个<p>
标签
$(‘prev ~ siblings’)
选择prev的所有兄弟siblings元素
<html>
<head>
<title>JQuery selector</title>
</head>
<body>
<div>
<p class="test">test</p>
<p>test2</p>
<p>test3</p>
<h3>test5</h3>
<p>test4</p>
</div>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('.test~p').css('backgroundColor','yellow');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
Basic Filters
举例:
<html>
<head>
<title>JQuery selector</title>
</head>
<body>
<div>
<ul>
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('ul li:first').css('backgroundColor','yellow');
$('ul li:last').css('backgroundColor','red');
$('ul li:eq(3)').css('backgroundColor','blue');
$('ul li:odd').css('fontSize','20px');
$('ul li:even').css('fontSize','40px');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
Content Filters
举例:
<html>
<head>
<title>JQuery selector</title>
</head>
<body>
<div class="test">
<div>This is Haris test example</div>
<div>Haris test example</div>
<div style="width:30px,height:10px,solid,bodersize:1px">
</div>
<p hidden="hidden">这个看不见</p>
<table>
<tr>
<td>1</td>
<td hidden="hidden">2</td>
<td>3</td>
<td hidden="hidden">4</td>
<td>5</td>
</tr>
</table>
</div>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('.test div:contains("This")').css('backgroundColor','yellow');
$('.test div:empty').css('backgroundColor','red');
$('tr td:hidden').css('backgroundColor','black').show(2000);
$('tr td:visible').css('backgroundColor','green');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
Attribute Filters
举例:
<html>
<head>
<title>JQuery selector</title>
</head>
<body >
<div class="test">
<div id="test" title="test">this is a div with id attribute</div>
<div class="test1" title="test">this is a div with class attribute1</div>
<div class="test2" title="test2">this is a div with class attribute2</div>
<div class="test3" title="test">this is a div with class attribute3</div>
<a href="#">
</div>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('[id]').css('backgroundColor','yellow');
$('[class="test1"]').css('backgroundColor','red');
$('[title!="test"]').css('backgroundColor','blue');
$('[class$="t3"]').css('backgroundColor','green');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
title不为test的所有元素全部被变为蓝色 只有title不为test的三个div没有变成蓝色
Child Filters
$(‘li:first-child’)
第一个子元素
$(‘li:last-child’)
最后一个子元素
$(‘li:nth-child(even)’)
偶数个子元素
$(‘li:nth-child(odd)’)
奇数个子元素
$(‘li:nth-child(2)’)
第二个子元素
$(‘li:nth-child(2n)’)
偶数个子元素
$(‘code:only-child’)
匹配唯一子元素
举例:
<html>
<head>
<title>JQuery selector</title>
</head>
<body >
<ul>
<li><sapn>0</span><span>000</span></li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul>
<li>7</li>
</ul>
<button>Click Me</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click', function() {
$('li:first-child').css('backgroundColor','yellow');
$('li:last-child').css('backgroundColor','red');
$('li:nth-child(3)').css('backgroundColor','yellow');
$('li:nth-child(even)').css('fontSize','15px');
$('li:nth-child(odd)').css('fontSize','30px');
$('li:only-child').css('backgroundColor','blue');
});
});
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>
Forms
同元素选择器一样,<input>
表单控件的type选择
Form Filters
在<input>
type选择的基础上出现了选择表单控件的状态不同时的选择器
举例:
<html>
<head>
<title>JQuery selector</title>
</head>
<body>
<form id="form1">
<input type="text" name="" value="文本域"><br/>
<input type="password" name="" value="密码域"><br/>
<input type="checkbox" name="" value="复选框">复选框<br/>
<input type="radio" name="" value="单选按钮">单选按钮<br/>
<input type="image" src="" value="图像域"><br/>
<input type="file" src="" value="文件域"><br/>
<input type="hidden" name="" value="隐藏域"><br/>
<input type="button" value="普通按钮" onclick=""><br/>
<input type="submit" value="提交按钮" onclick=""><br/>
<input type="reset" value="重置按钮" onclick=""><br/>
</form>
<br/>
<br/>
<br/>
<br/>
<button id="action">变化</button>
</body>
<script src="../../js/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#action').on('click',function(){
$("#form1 :text").val("修改后的文本域");
$("#form1 :password").val("修改后的密码域");
$("#form1 :checkbox").val("修改后的复选框");
$("#form1 :radio").val("修改后的单选框");
$("#form1 :image").hide(3000);
$("#form1 :file").hide(5000);
$("#form1 :hidden").show(5000)
$("#form1 :button").css('backgroundColor','yellow');
$("#form1 :submit").css('backgroundColor','red');
$("#form1 :reset").css('backgroundColor','blue');
});
})
</script>
<!-- <script src="/js/jquery-latest.js"></script> -->
</html>