jQuery 内容筛选
内容筛选
| 名称 | 说明 | 举例 |
|---|---|---|
| :contains(text) | 匹配包含给定文本的元素 | 查找所有包含 "John" 的 div 元素:$("div:contains('John')") |
| :empty | 匹配所有不包含子元素或者文本的空元素 | 查找所有不包含子元素或者文本的空元素:$("td:empty") |
| :has(selector) | 匹配含有选择器所匹配的元素的元素 | 给所有包含 p 元素的 div 元素添加一个 text 类: $("div:has(p)").addClass("test"); |
| :parent | 匹配含有子元素或者文本的元素 | 查找所有含有子元素或者文本的 td 元素:$("td:parent") |
:contains(text) 选取含有文本内容的元素
:has() 选择指定元素的元素
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>:contains(text) :has()</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{padding:30px; }
p{height:100px;width:90px; float: left;margin-left:10px; border: 1px solid #ddd;}
</style>
</head>
<body>
<p>p1 yellow</p>
<p>p2</p>
<p><strong>p3</strong></p>
<p>p4 yellow</p>
<p>p5</p>
<p>p6</p>
<span style="display:block;clear:both;"><!-- 清除浮动 --></span>
<script>
//有yellow文本的p标签被选中
$('p:contains("yellow")').css('background' ,'yellow');
//拓展一下用法,可以做类似搜索功能
//$('p:contains("p3")').show().siblings().hide();
/*
<p>jQuery是一个高效、精简并且功能丰富的JavaScript工具库。</p>
<p>它提供的API易于使用且兼容众多浏览器,</p>
<p>这让诸如HTML<strong>文档遍历和操作</strong>、事件处理、动画和Ajax操作更加简单。</p>
<p>jQuery极大地简化了JavaScript编程。</p>
<p>jQuery很容易学习</p>
$('p:contains("JavaScript")').css('color' ,'blue');
注意:开始用JavaScript做关键词,结果都不显示了,所以换中文关键词,要注意这一点。
如果表达式('p:has("strong")')匹配一个<p>,那么应有一个<strong>存在于<p>后代元素中的任何地方,不是直接的子元素也可以。
*/
$('p:has(strong)').css('background' ,'orange');
/*
因为:has()是一个jQuery延伸出来的一个选择器 。
并且不是的CSS规范的一部分, 使用:has()查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。
为了在现代浏览器上获得更佳的性能,请使用$("p").has("strong").css('color' ,'red'); 代替。
*/
</script>
</body>
</html>效果
p1 yellow
p2
p3
p4 yellow
p5
p6
:parent
选择所有含有子元素或者文本的父级元素。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>:parent</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{padding:30px; }
p{height:100px;width:100px;float:left;margin-left:10px; border:1px solid #DDDDDD;}
</style>
</head>
<body>
<p>p1</p>
<p>p2</p>
<p></p>
<p><a href="###"></a></p>
<p>p5</p>
<p>p6</p>
<span style="display:block;clear:both;"><!-- 清除浮动 --></span>
<script>
//这个正好和:empty相反
//含有文本,含有子元素的都被选中
//选择所有没有子元素的元素(包括文本节点)
$('p:parent').css('background' ,'yellow');
/***
因为:parent是一个jQuery 伸出来的选择器,并不是的CSS规范的一部分,
使用:parent 查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。
为了当使用:parent 的时候在现代浏览器上获得更佳的性能,首先使用纯CSS选择器选择元素,
然后使用.filter(":parent").
***/
</script>
</body>
</html>效果
p1
p2
p5
p6
:empty 选择所有没有子元素的元素(包括文本节点)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>:empty</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{padding:30px; }
p{height:100px;width:100px;float:left;margin-left:10px; border:1px solid #DDDDDD;}
</style>
</head>
<body>
<p>p1</p>
<p>p2</p>
<p></p>
<p><a href="###"></a></p>
<p>p5</p>
<p>p6</p>
<span style="display:block;clear:both;"><!-- 清除浮动 --></span>
<script>
// 这个和:parent选择器相反
// 没有文本,没有元素的p标签被选中
$('p:empty').text('text()方法添加这段文字').css('background' ,'yellow');
//需要注意的一件重要的事情是:empty(和:parent)的子元素包括文本节点
</script>
</body>
</html>效果
p1
p2
text()方法添加这段文字
p5
p6
可见性筛选
:hidden 选取所有不可见的元素
:visible 选取所有可以见的元素
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>可见性选择器</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<!--
可见性选择器
1:hidden 选取所有不可见的元素
2:visible 选取所有可以见的元素
-->
<div>我是可见的DIV</div>
<div style="display: none;">我是不可见的DIV</div>
<script>
//alert($(':hidden').html());//选择的太多,包括html标签
//弹出对话框:"我是不可见的DIV"
alert($('div:hidden').html());
/*
<div style="opacity:0;">我是不可见的DIV</div>
<div style="visibility:hiden;">我是不可见的DIV</div>
这两个div
虽然也不可见,只是透明度变成零,
但div还是占据空间,:hiden是选择不到的
:hidden选择器条件:
1:首先肉眼要在网页上看不到的元素
2:这个元素不占有网页上的位置
*/
//弹出对话框:"我是可见的DIV"
alert($('div:visible').html());
/*
为了在现代浏览器上获得更佳的性能,
请使用.filter(":hidden/:visible")代替。
*/
</script>
</body>
</html>2、属性选择器
:[attr]选择拥有此属性的选择权
:[attr=value]指定属性值的选择器
:[attr1][attr2][attr3]复合属性选择器
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>属性选择器 01</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style>
*{margin:0;padding:0;}
body{margin: 30px;}
div,p,a{width: 100px;height: 100px;float: left; border: 1px solid #ddd;margin-left:10px; }
</style>
</head>
<body>
<!--
[name="value"] 选择指定属性是给定值的元素。
[name] 选择所有具有指定属性的元素,该属性可以是任何值。
-->
<div title="js">DIV标签1</div>
<div title="js">DIV标签2</div>
<div title="js">DIV标签3</div>
<p attrname="attrbute">自定义属性p标签</p>
<p attrname="attrbute">自定义属性p标签</p>
<a href="http://baidu.com" style="display:block;" >A连接</a>
<script>
/*** [name="value"] ***/
//查找下含有title=js属性div标签,填充黄色背景样式
$('div[title=js]').css('background' ,'yellow');
//属性可以自定义,不一定是html标准里的属性,只要是符合属性语法规则的,也可以获取到
//被选中的p标签,背景样式填充橙色
$('p[attrname=attrbute]').css('background' ,'orange');
//用A标签标准的HTML属性选择,背景填充蓝色,字体颜色白色
$('a[href="http://baidu.com"]').css({'background':'blue' ,'color':'#fff'});
</script>
</body>
</html>Example:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>属性选择器 02</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style>
*{margin:0;padding:0;}
body{margin: 30px;}
div,p,a{width:100px;height:100px;float:left;border:1px solid #ddd;margin-left:10px;}
</style>
</head>
<body>
<!--
[name="value"] 选择指定属性是给定值的元素。
[name] 选择所有具有指定属性的元素,该属性可以是任何值。
-->
<p myattr="first" title="glee">first</p>
<p myattr="second" title="glee">second</p>
<p myattr="third" title="glee">third</p>
<p myattr="fifth">fifth</p>
<p myattr="sixth">sixth</p>
<p myattr="seventh">seventh</p>
<script>
//只要元素里有这个属性,不管属性值是什么都可以选择的到
//含有myattr属性的p元素,选中填充黄颜色背景。
$('[myattr]').css('background' ,'yellow');
/*
这种场景用的不是很多
例:
<a href="#" id = "xx" sendID="4">删除</a>
ajax时比如要发过去一个id是不行的,给一个sendID
用$('a[sendID]')来选中这个
*/
//[name="value"][name2="value2"]
//同时满足两个条件:
//1:含有myattr属性,的p元素
//2:属性title=glee的p元素
//前三个p元素被选中,文本变成26px红色
$('p[myattr][title="glee"]').css({'color':'red' ,'font-size':'26px'});
//自己扩展一下,仅仅写属性与属性值,选择一个元素
$('[myattr="first"]').css('border' ,'3px solid red');
/*
手册上的例子:
<input id="man-news" name="man-news" />
<input name="milkman" />
<input id="letterman" name="new-letterman" /><!-- 这个input被选中 -->
<input name="newmilk" />
$('input[id][name$="man"]').val('only this one');
*/
</script>
</body>
</html>Example:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>属性选择器</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<p>Email:<input type="text" name="email" /></p>
<p>密码:<input type="text" name="password" /></p>
<p>重复密码:<input type="text" name="repassword" /></p>
<p>学号:<input type="text" name="stunum" /></p>
<p>学分:<input type="text" name="stuscore" /></p>
<p><input type="password" ></p>
<script>
$('input[name=email]').val('添加文字');
//所有以stu开头的name属性的值
$('input[name^=stu]').css('background' ,'yellow');
//所有以word结尾
$('input[name$=word]').css('border' ,'3px solid orange');
//只要含有s的
$('input[name*=s]').val('name属性含有s的的值');
</script>
</body>
</html>三、表单选择器
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<form action="">
<input type="hidden" name="" value="隐藏文本框" />
<input type="text" name="" id="" value="文本框" />
<input type="password" name="" id="" value="密码框" />
<input type="button" value="按钮"/>
<input type="submit" value="提交按钮" />
<input type="radio" name="" id="" value="单选按钮" />
<input type="checkbox" name="" id="" value="复选按钮"/>
<input type="reset" value="重置按钮"/>
<textarea name="" id="" clos="30" rews="10">文本框</textarea>
<select name="" id="" disabled ="disabled">
<option value="111">111</option>
<option value="222">222</option>
<option value="333">333</option>
</select>
<input type="file" name="" id=""/>
<input type="image" src="https://www.baidu.com/img/bd_logo1.png" width="120" alt="">
<button>按钮</button>
</form>
<script>
//:input 选择所有的表单元素,包括input, select, button, textarea
alert($(':input').length);//13
//input 只选中input的标签元素
alert($('input').length);//10
/*
jquery中$(":input")和$("input")有什么区别?
1.$("form :input") 返回form中的所有表单对象,包括textarea、select、button等.
2.$("form input")返回form中的所有input标签对象.
3.form input 是属于层级选择器(将每一个选择器匹配到的元素合并后一起返回).
4.form :input是属于表单选择器(匹配所有<input>、<textarea>、<select>、<button>元素).
转自:https://zhidao.baidu.com/question/559377094938405044.html
*/
//只选择第二个的input的type="text"
//alert($(':text').length);//1
$(':text').css('background' ,'yellow');
//$(':password').css('background' ,'#FFCC22');
//alert($(':radio').val());
//alert($(':checkbox').val());
//alert($('input[type=checkbox]').val());//属性选择器也是可以选择到的
//alert($('input:hidden').val());
</script>
</body>
</html>表单属性选择器
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<title>表单属性选择器</title>
</head>
<body>
<input type="text" name="" id="" value="不能修改文本框" disabled="disabled" />
<input type="text" name="" id="" value="可以修改文本框" />
<p style="background: #ddd;width:200px;height:24px;">
<input type="checkbox" name="" id="" checked="checked" value="aaa"/>
<input type="checkbox" name="" id="" value="bbb"/>
<input type="checkbox" name="" id="" value="ccc"/>
</p>
<p style="background: #ddd;width:200px;height:24px;">
<select name="" id="">
<option value="1">第一个选项</option>
<option value="2">第二个选项</option>
<option value="3" selected="selected">第三个选项</option>
</select>
</p>
<script>
//alert($('input:disabled').val());
//alert($('input:enabled').val());
//alert('input[disabled="disabled"]');
//用属性选择器,属性选择器是非常有用的
//alert($(':checked').val());
//alert($('input[checked=checked]').val());
//alert($(':selected').val());
alert($('option[selected=selected]').val());
</script>
</body>
</html>Example:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表单类型过滤选择器</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<form action="">
<p><input type="text" /></p>
<p><input type="password" /></p>
<p><input type="checkbox" /></p>
<p><input type="radio" /></p>
</form>
<script type="text/javascript">
$('input[type=text]').css('background' ,'blue');
$('input:text').css('background' ,'gray');
$('input:password').css('background' ,'yellow');
</script>
</body>
</html>在 select 元素上添加 change 事件,将选中的 option 元素的文本写入一个 div 中。
<!DOCTYPE html>
<html>
<head>
<style>
div{color:red;}
</style>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<select name="garden" multiple="multiple">
<option>Flowers</option>
<option selected="selected">Shrubs</option>
<option>Trees</option>
<option selected="selected">Bushes</option>
<option>Grass</option>
<option>Dirt</option>
</select>
<div></div>
<script>
$("select").change(function () {
var str = "";
$("select option:selected").each(function(){
str += $(this).text()+" ";
});
$("div").text(str);
})
.trigger('change');
</script>
</body>
</html>基本建议用属性选择器
| 名称 | 建议用 | |
| $(":button") | $("button, input[type='button']") | .filter(":button") |
| $(':checkbox') | $('input:checkbox') | [type="checkbox"] |
| :checked | $("input[type=checkbox]") | |
| $(':disabled') | $('input:disabled') | |
| $(':enabled') | $('input:enabled') | |
$(':file') | $('input:file') | [type="file"] |
| $(':image') | [type="image"] | |
| $(':input') | .filter(":input") | |
| $(':password') | $('input:password') | [type="password"] |
| $(':radio') | $('[type=radio]') 要选择一个单选按钮相关的设置,你可以使用: $('input[name=gender]:radio') | |
| $(':reset') | [type="reset"] | |
| $(':selected') | .filter(":selected") | |
| $(':submit') | [type="submit"] <button type="submit">按钮</button> | |
| $(':text') | $('[type=text]') |
虽然他们的选择的结果通常是一样的,
:disabled选择器和[disabled]属性(attribute)选择器还是有些细微的差别;
:disabled检查元素实际的disabled属性值(愚人码头注:是否被禁用,布尔值true/false),
[disabled] 检查是否存在的disabled属性。
虽然他们的选择的结果通常是一样的,
:enabled选择器和:not([disabled])属性(attribute)选择器还是有些细微的差别;
:enabled 检查元素的disabled属性是否严格等于false,
:not([disabled]) 检查是disabled 属性(attribute)没有被设置
筛选(过滤)
| 名称 | 说明 | 举例 |
| .eq() | 选择指定索引的元素 | |
| .filter(表达式) | 筛选指定表达式的元素 | |
| .first() | 选择第一个元素 | |
| .last() | 选择最后一个元素 | |
| .is() | 检测是否元素返回布尔值 | |
| .has() | 保留包含特定后代元素,去掉那些不含有指定后代的元素 | |
| .not() | 从匹配的元素集合中移除指定的元素 | |
| .map() | 匹配当前集合中的每个元素,产生一个包含新的jQuery对象。 | |
| .slice() | 根据指定的下标范围,选取匹配元素集合 |
.eq(index/-index)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>eq(index/-index)</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
p{height:100px;width:100px;border:1px solid #ddd;float:left;margin-left:10px;}
</style>
</head>
<body>
<p>第1个p标签</p>
<p>第2个p标签</p>
<p>第3个p标签</p>
<p>第4个p标签</p>
<p>第5个p标签</p>
<p>第6个p标签</p>
<script>
/***
eq(index)跟之前:eq选择器很像区别是:
DOM方法主要用在链式操作里面,选择器主要是用在选择DOM方面(面试可能会问到)
***/
//索引是从0开始的,第1个p标签被选中。
$('p').eq(0).css('background' ,'red');
//第2个个p标签被选中
$('p').eq(2).css('background' ,'orange');
//倒数第2个p标签,也就是正数第5个p标签被选中
$('p').eq(-2).css('background' ,'yellow');
</script>
</body>
</html>.filter(expr|obj|ele|fn)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>filter(expr|obj|ele|fn)</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
p{height:100px;width:100px;border:1px solid #ddd;float:left;margin-left:10px;}
</style>
</head>
<body>
<p>第1个p标签</p>
<p>第2个p标签</p>
<p id="third">第3个p标签</p>
<p>第4个p标签</p>
<p>第5个p标签</p>
<p>第6个p标签</p>
<div style="clear: both; height: 200px;"></div>
<ul>
<li><strong>list</strong> item 1 - one strong tag</li>
<li><strong>list</strong> item <strong>2</strong> -two strong tags</li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
<li>list item 6</li>
</ul>
<script>
//使用样式,选择第二个p标签
//$('p').filter('.second').css('background' ,'red');
//选中0 ,2 ,4
//$('p').filter(':even').css('background' ,'red');
//同时选中第一个与第二个p元素
//$('p').filter(':first ,.second').css('background' ,'red');
//最后一个元素
//$('p').filter(':last').css('background' ,'red');
//过滤索引值为1或id值为third的p元素
$('p').filter(function (index) {
return index == 1 || $(this).attr("id") == "third";
}).css("background", "yellow");
$('li').filter(function(index){
//研究了半天,
//$('strong', this).length的意思是li里有几个strong标签
return $('strong', this).length == 2;
}).css('background-color', 'red');
</script>
</body>
</html>.frist()
.last()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>03 frist() ,last()</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
p{height:100px;width:100px;border:1px solid #ddd;float:left;margin-left:10px;}
</style>
</head>
<body>
<p>第1个p标签</p>
<p>第2个p标签</p>
<p>第3个p标签</p>
<p>第4个p标签</p>
<p>第5个p标签</p>
<p>第6个p标签</p>
<!-- 2018年3月20日 至 3月23日 这两句话,那天我正重新学这课程,二十天了还没学完,进度太慢了 -->
<span style="display:block;clear:both; margin-bottom:30px; "><!-- 清除浮动 --></span>
<div><span>你若盛开</span>,蝴蝶自来。你若精彩,<span>天自安排。</span></div>
<script>
//选择第一个p元素
$('p').first().css('background' ,'red');
//选择第二个p元素
$('p').last().css('background' ,'yellow');
//高亮div中的第一个,第二个span
$('div>span').first().css('color' ,'orange');
$('div span').last().css({'background':'#FFFF33' ,'color':'#FF0088'});
</script>
</body>
</html>.is()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>04 is()检测元素返回布尔值</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
p{height:100px;width:100px;border:1px solid #ddd;float:left;margin-left:10px;}
</style>
</head>
<body>
<p>第1个p标签</p>
<p class="second">第2个p标签,点击行p标签背景变成红色</p><!-- 点击行p标签背景变成红色 -->
<p>第3个p标签</p>
<p>第4个p标签</p>
<p>第5个p标签</p>
<p>第6个p标签</p>
<script>
$('p').click(function(){
if($(this).is('.second')){
$(this).css("background", "red");
}
});
/*
解释:
1:给每个p标签添加一个click事件
2:如果当前点击的p标签包含class="second"的p元素,
3:那么加上背景red的样式
4:如果p标签没class="second"那么if里返回的是false
5:就不执行添加red背景的代码
*/
</script>
</body>
</html>02
<!DOCTYPE html>
<html>
<head>
<style>
div { width:60px; height:60px; margin:5px; float:left;
border:4px outset; background:green; text-align:center;
font-weight:bolder; cursor:pointer; }
.blue { background:blue; }
.red { background:red; }
span { color:white; font-size:16px; }
p { color:red; font-weight:bolder; background:yellow;margin:3px; clear:left; display:none;}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div></div>
<div class="blue"></div>
<div></div>
<div class="red"></div>
<div><br/><span>Peter</span></div>
<div class="blue"></div>
<p> </p>
<script>
$("div").click(function(){
//子元素选择器
if ($(this).is(":first-child")) {
$("p").text("It's the first div.");
//.blue or .red
} else if ($(this).is(".blue,.red")) {
$("p").text("It's a blue or red div.");
//内容筛选
} else if ($(this).is(":contains('Peter')")) {
$("p").text("It's Peter!");
} else {
//没有复合条件的显示下面文字
$("p").html("It's nothing <em>special</em>.");
}
$("p").hide().slideDown("slow");
$(this).css({"border-style":"inset", cursor:"default"});
});
</script>
</body>
</html>03
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>03 is()</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
</style>
</head>
<body>
<form><p><input type="checkbox" /></p></form>
<div></div>
<script>
//返回false父元素是p,去掉p标签返回true
var isFormParent = $("input[type='checkbox']").parent().is("form");
$("div").text("isFormParent = " + isFormParent);
</script>
</body>
</html>04
<!DOCTYPE html>
<html>
<head>
<style>li { cursor:pointer; }</style>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<ul id="browsers">
<li>Chrome</li>
<li>Safari</li>
<li>Firefox</li>
<li>Opera</li>
</ul>
<script>
/***
var $alt = $("#browsers li:nth-child(2n)").css("background", "#00FFFF");
$('li').click(function(){
if ($alt.is(this)) {
$(this).slideUp();
}else{
$(this).css("background", "red");
}
});
1:选择索引2,4...元素
2:给每个li添加点击事件
3:凡是被第一步选中的li(2,4)元素,点击都上浮隐藏
4:其他li元素点击加红色背景
***/
//同样的效果
var $alt = $("#browsers li:nth-child(2n)").css("background", "#00FFFF");
$('li').click(function(){
var $li = $(this);
if($li.is($alt)){
$li.slideUp();
}else{
$li.css("background", "red");
}
});
</script>
</body>
</html>.has()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>05 has()</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
p{height:100px;width:100px;border:1px solid #ddd;float:left;margin-left:10px;}
</style>
</head>
<body>
<p>第1个p标签</p>
<p>第2个p标签</p>
<p><span>第</span>3个p标签</p>
<p>第4个p标签</p>
<p>第5个p标签</p>
<p>第6个p标签</p>
<div style="clear:both;height:60px;"></div>
<ul>
<li>Does the UL contain an LI?</li>
</ul>
<script>
$('p').has('span').css('background' ,'orange');
/*
选择有span子元素的p标签
样式加在p标签里
<p style="background: orange;"><span>第</span>3个p标签</p>
*/
$('ul').append(
'<li>'+
($('ul').has('li').length ? 'Yes' : 'No')
+'</li>'
);
$('ul').has('li').css('border' ,'1px solid red');
</script>
</body>
</html>.not()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>06 not()</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
p{height:100px;width:100px;border:1px solid #ddd;float:left;margin-left:10px;}
</style>
</head>
<body>
<p>第1个p标签</p>
<p id="second">第2个p标签</p><!-- 这行没有改变 -->
<p>第3个p标签</p>
<p class="gelan">第4个p标签</p>
<p>第5个p标签</p><!-- 这行没有改变 -->
<p>第6个p标签</p>
<script>
//移除#second,.gell的p元素
//其实就是符合not()里的p都不加样式
$('p').not('#second ,.gelan').css('background' ,'orange');
//可以用表达式
//$('p').not(':odd').css('background' ,'orange');
//$('p').not(':first').css('background' ,'orange');
</script>
</body>
</html>.map()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>07 map()</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
</style>
</head>
<body>
<input type="text" value="姓名" />
<input type="text" value="年龄" />
<input type="text" value="收入" />
<p></p>
<script>
/*
//1:打印每个input的值
$('input').map(function(){
alert($(this).val());
});
//2:
var obj = $('input').map(function(){
return $(this).val();
});
alert(typeof obj);//返回一个对象
*/
var obj = $('input').map(function(){
return $(this).val();
}).get().join(',');
//得到的值用顿号隔开,join()成为一个字符串
//alert(typeof arr);
//写入p标签
$('p').html(obj);
</script>
</body>
</html>.silce()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>silce()</title>
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
*{margin:0;padding:0;}
body{margin:30px;}
p{height:100px;width:100px;border:1px solid #ddd;float:left;margin-left:10px;}
</style>
</head>
<body>
<p>第1个p标签</p>
<p>第2个p标签</p>
<p>第3个p标签</p>
<p>第4个p标签</p>
<p>第5个p标签</p>
<p>第6个p标签</p>
<script>
//下标从第一个开始到第五个元素,但不包括第五个元素
//永数学上的区间法表示:[1,5)
//第一个索引有,第二个索引没有(1~4)
$('p').slice(1 ,5).css('background' ,'yellow');
//索引 2 ,3 ,4...
$('p').slice(2).css('color' ,'blue');
//从负三到负一,但不包括负一(-3~-2)
$('p').slice(-3 ,-1).css('border' ,'3px solid red');
</script>
</body>
</html>