【jQuery】2、选择器

一、基本选择器

1. 是什么?
  - 有特定格式的字符串
2. 作用
  - 用来查找特定页面元素
3. 基本选择器
  - #id : id选择器
  - element : 元素选择器
  - .class : 属性选择器
  - * : 任意标签
  - selector1,selector2,selectorN : 取多个选择器的并集(组合选择器)
  - selector1selector2selectorN : 取多个选择器的交集(相交选择器)
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>05_基本选择器</title>
</head>

<body>
<div id="div1" class="box">div1(class="box")</div>
<div id="div2" class="box">div2(class="box")</div>
<div id="div3">div3</div>
<span class="box">span(class="box")</span>

<br>
<ul>
  <li>AAAAA</li>
  <li title="hello">BBBBB(title="hello")</li>
  <li class="box">CCCCC(class="box")</li>
  <li title="hello">DDDDDD(title="hello")</li>
</ul>

<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 选择id为div1的元素
   2. 选择所有的div元素
   3. 选择所有class属性为box的元素
   4. 选择所有的div和span元素
   5. 选择所有class属性为box的div元素
   */

  // 1. 选择id为div1的元素
  //$('#div1').css('background','red')

  // 2. 选择所有的div元素
  //$('div').css('background','red')

  // 3. 选择所有class属性为box的元素
  //$('.box').css('background','red')

  // 4. 选择所有的div和span元素
  //$('div,span').css('background','red')

  // 5. 选择所有class属性为box的div元素
  $('div.box').css('background','red')

</script>
</body>

</html>

二、层次选择器

层次选择器: 查找子元素, 后代元素, 兄弟元素的选择器
1. ancestor descendant
  在给定的祖先元素下匹配所有的后代元素
2. parent>child
  在给定的父元素下匹配所有的子元素
3. prev+next
  匹配所有紧接在 prev 元素后的 next 元素
4. prev~siblings
  匹配 prev 元素之后的所有 siblings 元素
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>06_层次选择器</title>
</head>

<body>
<ul>
  <li>AAAAA</li>
  <li class="box">CCCCC</li>
  <li title="hello"><span>BBBBB</span></li>
  <li title="hello"><span class="box">DDDD</span></li>
  <span>EEEEE</span>
</ul>

<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 选中ul下所有的的span
   2. 选中ul下所有的子元素span
   3. 选中class为box的下一个li
   4. 选中ul下的class为box的元素后面的所有兄弟元素
   */

  // 1. 选中ul下所有的的span
  //$('ul span').css('background','red')

  // 2. 选中ul下所有的子元素span
  //$('ul>span').css('background','red')

  // 3. 选中class为box的下一个li
  //$('.box+').css('background','red')

  // 4. 选中ul下的class为box的元素后面的所有兄弟元素
  $('ul .box~*').css('background','red')

</script>
</body>
</html>

三、过滤选择器

在原有选择器匹配的元素中进一步进行过滤的选择器
  * 基本

  * 内容

  * 可见性

  * 属性
<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>07_过滤选择器</title>
</head>

<body>
<div id="div1" class="box">class为box的div1</div>
<div id="div2" class="box">class为box的div2</div>
<div id="div3">div3</div>
<span class="box">class为box的span</span>
<br/>
<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>
<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">

  /*
   需求:
   1. 选择第一个div
   2. 选择最后一个class为box的元素
   3. 选择所有class属性不为box的div
   4. 选择第二个和第三个li元素
   5. 选择内容为BBBBB的li
   6. 选择隐藏的li
   7. 选择有title属性的li元素
   8. 选择所有属性title为hello的li元素
   */

  // 1. 选择第一个div
  //$('div:first').css('background','red')

  // 2. 选择最后一个class为box的元素
  //$('.box:last').css('background','yellow')

  // 3. 选择所有class属性不为box的div
  //$('div:not(.box)').css('background','red')  //没有class属性值也可以被选中

  // 4. 选择第二个和第三个li元素
  //$('li:lt(3):gt(0)').css('background','blue')

  // 5. 选择内容为BBBBB的li
  //$('li:contains("BBBBB")').css('background','red')

  // 6. 选择隐藏的li
  console.log($('li:hidden').length,$('li:hidden')[0])

  // 7. 选择有title属性的li元素
  //$('li[title]').css('background','red')

  // 8. 选择所有属性title为hello的li元素
  //$('li[title=hello]').css('background','red')
  $('li[title="hello"]').css('background','red')

</script>
</body>
</html>

 四、表单选择器

表单选择器
  1). 表单

  2). 表单对象属性
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>08_表单选择器</title>
</head>

<body>
<form>
  用户名: <input type="text"/><br>
  密 码: <input type="password"/><br>
  爱 好:
  <input type="checkbox" checked="checked"/>篮球
  <input type="checkbox"/>足球
  <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>

<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 选择不可用的文本输入框
   2. 显示选择爱好 的个数
   3. 显示选择的城市名称
   */

  // 1. 选择不可用的文本输入框
  $(':text:disabled').css('background','#ccccff')

  // 2. 显示选择爱好 的个数
  $(':checkbox').click(function () {
    console.log($(':checkbox:checked').length)
  })

  // 3. 显示选择的城市名称
  $(':submit').click(function () {
    var city = $('select>option:selected').html()
    var number = $('select').val()
    console.log(city,number)
    alert('确认')
  })

</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/edc3001/article/details/85725844