65 views

jQuery入门与jQuery基本技术作用表述

By | 2019年2月23日

1. css样式借助于css字体css选择器随着页面的型式和表現形状仍然分割,css样式属性选择器能方便快捷位置定位并休改选定大元素版式,css样式css选择器涵盖标贴选择符(以word文档大元素看做css选择器),Idcss选择器(以word文件原素的必然标示ID用作css伪类),类css选择器(以wps文档重元素的class当做属性选择器),群组选择符(多张选择符用到一模一样的版式原则),后裔选择符(稀土元素X的随机后嗣重元素Y),通配选择符(以wps文档的整个原素当作选择符),伪类选择器(以重元素某一情形当作选择符),子选择符(原素X的随时子属大元素Y),哥俩选择符(原素X的委属亲兄弟原素Y),属性选择器(以word原素某一技能为选择符)

2. jQuerycss选择器仍然承继了css样式选择符的极简风格,css样式选择符能方便快捷位置定位并重设其他原素技能和情形,而不须操心网页与否适配这一选择符,jQuery的情形准则都须要在读取到原素后就要有效

表明: jQuery实际上里能像天然css样式样修该原素形状,又很还用重设原素情形,时需留意的是jQuery中所涉操作步骤css样式形状的局部比洒脱的css样式功用最为强硬,或者持有跨浏览器的兼容.

错误处理:

表明: 天然Js假若加载的js对象未找到则游览器会错误,一旦加if断定会提高代碼量,而jQuery中$(‘selector’)加载的也许是封装类型后的jQuery基类,之所以未能随时if判别,只要可以if判别,若果不肯去判段得话可实现断定$(‘selector’).length技能哪些大于等于0或$(‘selector’)[0]转成为DOM对象(本来是调用的$(‘selector’).toArray()装换为DOM对象数组就让再取所选DOM对象的)区分对象与否纯在

<!–DTYpE html&gt;
<html <span data-org=”lang” data-prev=”#” data-next=”=” data-word=”lang” class=””>lang=”zh-cn”&gt;
&lt;Head&gt;
&lt;meta charset=”UTF-8″&gt;
&lt;title&gt;前端工程师<!–body&gt;
<!–script src=”js/libs/jquery.min.js”&gt;<!–script type=”text/javascript”&gt;
// 原则一: 根据辨别其length属性
if ($(“body”).length &gt; 0){
alert(“存在”)
}
// 方式二: 转换为DOM对象判断是否存在
if ($(‘body’)[0]){
alert(“存在”)
}
<!–<span data-org=”script” data-prev=”/” data-next=”–>” data-word=’script’ class=”” &gt;script&gt;
</h<span>tml&gt;

JQ选择器:

<!DOCTYPE html>
<html lang=”zh-cn”>
<head>
<meta charset=”UTF-8″>
<title>前端开发</title>
<style type=”text/css”>
div, span, p {
width: 200px;
height: 200px;
margin: 5px;
background: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
}
div.mini {
width: 66px;
height: 66px;
background-color: #aaa;
font-size: 12px;
}
div.hide {
display: none;
}
</style>
</head>
<body>
<h1>just for test</h1>
<div class=”one” id=”one”>
id为one,class为one的div
<div class=”mini”>class为mini的div</div>
</div>
<div class=”one” id=”two” title=”test”>
id为two,class为one,title为test的div
<div class=”mini” title=”other”>class为mini,title为other的div</div>
<div class=”mini” title=”test”>class为mini,title为test的div</div>
</div>
<div class=”one”>
class为one的div
<div class=”mini”>class为mini的div</div>
<div class=”mini”>class为mini的div</div>
<div class=”mini”>class为mini的div</div>
<div class=”mini”></div>
</div>
<div class=”one”>
class为one的div
<div class=”mini”>class为mini的div</div>
<div class=”mini”>class为mini的div</div>
<div class=”mini”>class为mini的div</div>
<div class=”mini” title=”test”>class为mini,title为test的div</div>
</div>
<div style=”display: none;” class=”one”>style的display为”none”的div</div>
<div class=”hide”>class为”hide”的div</div>
<div>
包含input的type为”hidden”的div
<input type=”hidden” name=”name”>
</div>
<span id=”mover”>正在执行动画的span</span>
</body>
</html>
wKioL1guouSwbdkOAABXtDZViN4400.png

# 基本选择器

说明: 基本选择器包括元素选择器/ID选择器/类选择器/通用选择器/分组选择器.

<script src=”js/libs/jquery.min.js”></script>
<script type=”text/javascript”>
// 改变id为one的元素背景颜色为#bbffaa
$(“#one”).css(“background-color”, “#bbffaa”)
// 改变class为mini的元素的背景颜色为#bbffaa
$(“.mini”).css(“background-color”, “#bbffaa”)
// 改变所有div元素的背景颜色为#bbffaa
$(“div”).css(“background-color”, “#bbffaa”)
// 改变所有元素的背景颜色为#bbffaa
$(“*”).css(“background-color”, “#bbffaa”)
// 改变所有span和id为two的元素的背景颜色为#bbffaa
$(“span, #two”).css(“background-color”, “#bbffaa”)
</script>
# 层次选择器

说明: 层次选择器包括子选择器/后代选择器/兄弟选择器/后续选择器.

<script type=”text/javascript”>
// 改变body里面所有div元素的背景颜色为#bbffaa
$(“body div”).css(“background-color”, “#bbffaa”)
// 改变body内第一层同级div元素的背景颜色为#bbffaa
$(“body>div”).css(“background-color”, “#bbffaa”)
// 改变class为one的后面第一个同级div的背景颜色为#bbffaa
$(“.one + div”).css(“background-color”, “#bbffaa”)
// 改变id为two后面所有div元素的背景颜色为#bbffaa
$(“#two ~ div”).css(“background-color”, “#bbffaa”)
</script>
扩展: 在层次选择器中子选择器和后代选择器比较常用,而兄弟选择器和后续选择器在jQuery中可以用更简单的方法代替,兄弟选择器可通过.next(“selector”)代替,而后续选择器可通过.nextAll(“selector”)代替,需要注意的是.next(“selector”)和.nextAll(“selector”)都是基于同级的,还有一个基于同级但是不论前后的兄弟元素获取方法是.siblings(“selector”)

# 过滤选择器

说明: 过滤选择器包括基本过滤选择器/内容过滤选择器/可见性过滤选择器/属性过滤选择器/子元素过滤选择器/表单属性过滤选择器.

<script type=”text/javascript”>
// 基本过滤选择器
// 改变第一个div元素的背景色为#bbffaa
$(“div:first”).css(“background-color”, “#bbffaa”)
// 改变最后一个div元素的背景色为#bbffaa
$(“div:last”).css(“background-color”, “#bbffaa”)
// 改变class不为one的元素的背景色为#bbffaa
$(“div:not(.one)”).css(“background-color”, “#bbffaa”)
// 改变索引为偶数的元素的背景颜色为#bbffaa
$(“div:even”).css(“background-color”, “#bbffaa”)
// 改变索引为奇数的元素的背景颜色为#bbffaa
$(“div:odd”).css(“background-color”, “#bbffaa”)
// 改变索引等于某值元素的背景颜色为#bbffaa
$(“div:eq(0)”).css(“background-color”, “#bbffaa”)
// 改变索引大于某值的元素的背景颜色为#bbffaa
$(“div:gt(0)”).css(“background-color”, “#bbffaa”)
// 改变索引小于某值的元素的背景颜色为#bbffaa
$(“div:lt(1)”).css(“background-color”, “#bbffaa”)
// 改变所有的标题元素(h1~h6)的背景颜色为#bbffaa
$(“:header”).css(“background-color”, “#bbffaa”)
// 改变所有正在执行动画的元素的背景颜色为#bbffaa
$(“:animated”).css(“background-color”, “#bbffaa”)

// 内容过滤选择器
// 设置包含文本内容为某值的元素背景色为#bbffaa
$(“div:contains(为)”).css(“background-color”, “#bbffaa”)
// 设置不包含任何子元素或文本内容的元素背景色为#bbffaa
$(“div:empty”).css(“background-color”, “#bbffaa”)
// 设置包含指定选择器的元素的元素背景色为#bbffaa
$(“div:has(div)”).css(“background-color”, “#bbffaa”)
// 设置包含有子元素或文本的元素的背景色为#bbffaa(和empty相反)
$(“div:parent”).css(“background-color”, “#bbffaa”)

// 可见过滤选择器
// 设置所有不可见元素显示
$(“div:hidden”).show(3000)
// 设置所有可见div元素背景色设置为#bbffaa
$(“div:visible”).css(“background-color”, “#bbffaa”)

// 属性过滤选择器
// 设置含有title属性元素的背景色为#bbffaa
$(“[title]”).css(“background-color”, “#bbffaa”)
// 设置title属性值等于test的元素背景色为#bbffaa
// $(“[title=test]”).css(“background-color”, “#bbffaa”)
// 设置title属性值不等于test的元素背景色为#bbffaa
$(“[title!=test]”).css(“background-color”, “#bbffaa”)
// 设置title属性值以te开头的元素背景色为#bbffaa
$(“[title^=te]”).css(“background-color”, “#bbffaa”)
// 设置title属性值以st结尾的元素背景色为#bbffaa
$(“[title$=st]”).css(“background-color”, “#bbffaa”)
// 设置title属性值中含有es的元素背景色为#bbffaa
$(“[title*=es]”).css(“background-color”, “#bbffaa”)
// 设置包含id属性且title属性值为test的元素的背景色为”#bbffaa”
$(“[id][title=test]”).css(“background-color”, “#bbffaaa”)

// 子元素过滤选择器
// 设置class为one的div下的第一个子元素背景色为#bbffaa
$(“div.one :first-child”).css(“background-color”, “#bbffaa”)
// 设置class为one的div下的最后一个子元素背景色为#bbffaa
$(“div.one :last-child”).css(“background-color”, “#bbffaa”)
// 设置class为one的div下只有一个子元素的元素背景色为#bbffaa
$(“div.one :only-child”).css(“background-color”, “#bbffaa”)
// 设置每个元素下的第index个子元素或偶数或奇数元素的背景色为#bbffaa
$(“div.one :nth-child(odd)”).css(“background-color”, “#bbffaa”)
</script>
说明: 在可见性过滤选择器中,:hidden不仅包括样式属性display:none的元素,也包括文本隐藏域<input type=”hidden”>和visible:hidden之类的元素,在子元素过滤选择器中,:nth-child将为每一个符合条件的父元素匹配子元素,但需要注意的是索引是从1开始,而:eq的索引从0开始,同理:first和:first-child,:last和:last-child类似

# 表单选择器

说明: 表单选择器包括表单对象属性过滤选择器和扩展表单过滤选择器.

<script type=”text/javascript”>
// 表单对象属性过滤选择器
// 设置id为form1的表单下的可用元素的值为你改变了~
$(“#form1 input:enabled”).val(“你改变了~”)
// 设置id为form1的表单下的不可用元素的值为你改变了~
$(“#form1 input:disabled”).val(“你改变了~”)
// 获取多选框中选中的个数并显示在div中
$(“div:first”).html($(“input:checked”).length + “个被选中!”).css({
“color”: “red”,
“font-weight”: “border”
})
// 获取多选下拉列表中被选中的个数并显示在div中
$(“div:eq(1)”).html($(“select:first [selected=selected]”).length + “个被选中”).css({
“color”: “red”,
“font-weight”: “border”
})
// 获取单选下拉框中被选中的值并显示在div中
$(“div:last”).html($(“select:last [selected=selected]”).text() + “被选中”).css({
“color”: “red”,
“font-weight”: “border”
})
// 表单选择器
// :input可匹配<input>/<textarea>/<select>/<button>元素
$(“:input”).css(“border”, “solid 1px red”)
// :text可匹配<input>所有的单行文本框
$(“:text”).css(“border”, “solid 1px red”)
// :password可匹配所有的密码框
$(“:password”).css(“border”, “solid 1px red”)
// :radio可匹配所有的单选框
$(“:radio”).css(“border”, “solid 1px red”)
// :checkbox可匹配所有的多选框
$(“:checkbox”).css(“border”, “solid 1px red”)
// :submit可匹配所有的提交按钮
$(“:submit”).css(“border”, “solid 1px red”)
// :p_w_picpath可匹配所有的图像按钮
$(“:p_w_picpath”).css(“border”, “solid 1px red”)
// :reset可匹配所有的重置按钮
$(“:reset”).css(“border”, “solid 1px red”)
// :button可匹配所有的按钮
$(“:button”).css(“border”, “solid 1px red”)
// :file可匹配所有的文件上传域
$(“:file”).css(“border”, “solid 1px red”)
// :hidden选取所有不可见元素
$(“:hidden”).css(“border”, “solid 1px red”)
</script>

最佳实践:

1. 给网页中的所有的<p>元素添加点击事件,点击后弹出元素内的文本内容?

<script type=”text/javascript”>
$(“p”).click(function(event) {
alert($(this).text())
});
</script>
2. 使一个特定的表格隔行换色?

<script type=”text/javascript”>
$(“table tr:odd”).css(“background-color”, “#bbffaa”)
</script>
3. 对多选框进行操作,输出选中的个数?

<script type=”text/javascript”>
$(“input[name=newselector]:checkbox”).click(function(event){
$(“div>span”).html(
” ” + $(“input[name=newselector]:checked”).length + “个选项被勾选!”
).css(“color”, “red”)
})
</script>
4. 如上要求用户进入页面时,品牌列表默认精简显示(从第5条开始隐藏后面的品牌,除了最后一条),用户单机”显示所有品牌”显示全部品牌同时高亮显示推荐的品牌,且按钮里的文字也换成”精简显示品牌”,再次单击”精简显示品牌”恢复初始状态?

wKiom1guoy2xL8QXAAAXQa0JE1I482.png

<!DOCTYPE html>
<html lang=”zh-cn”>
<head>
<meta charset=”UTF-8″>
<title>前端开发</title>
<style type=”text/css”>
*{ margin:0; padding:0;}
body {font-size:12px;text-align:center;}
a { color:#04D; text-decoration:none;}
a:hover { color:#F50; text-decoration:underline;}
.SubCategoryBox {width:600px; margin:0 auto; text-align:center;margin-top:40px;}
.SubCategoryBox ul { list-style:none;}
.SubCategoryBox ul li { display:block; float:left; width:200px; line-height:20px;}
.showmore { clear:both; text-align:center;padding-top:10px;}
.showmore a { display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #AAA;}
.showmore a span { padding-left:15px; background:url(img/down.gif) no-repeat 0 0;}
.promoted a { color:#F50;}
</style>
</head>
<body>
<div class=”SubCategoryBox”>
<ul>
<li ><a href=”#”>佳能</a><i>(30440) </i></li>
<li ><a href=”#”>索尼</a><i>(27220) </i></li>
<li ><a href=”#”>三星</a><i>(20808) </i></li>
<li ><a href=”#”>尼康</a><i>(17821) </i></li>
<li ><a href=”#”>松下</a><i>(12289) </i></li>
<li ><a href=”#”>卡西欧</a><i>(8242) </i></li>
<li ><a href=”#”>富士</a><i>(14894) </i></li>
<li ><a href=”#”>柯达</a><i>(9520) </i></li>
<li ><a href=”#”>宾得</a><i>(2195) </i></li>
<li ><a href=”#”>理光</a><i>(4114) </i></li>
<li ><a href=”#”>奥林巴斯</a><i>(12205) </i></li>
<li ><a href=”#”>明基</a><i>(1466) </i></li>
<li ><a href=”#”>爱国者</a><i>(3091) </i></li>
<li ><a href=”#”>其它品牌相机</a><i>(7275) </i></li>
</ul>
<div class=”showmore”>
<a href=”more.html”><span>显示全部品牌</span></a>
</div>
</div>
</body>
<script src=”js/libs/jquery.min.js”></script>
<script type=”text/javascript”>
/*
1. 默认进去页面,从第5条开始隐藏后面的品牌(最后一条”其它品牌相机”除外)
2. 当用户点击”显示全部品牌”按钮时
> 显示隐藏品牌
> “显示全部品牌”按钮文本切换成”精简显示品牌”
> 高亮推荐品牌
3. 当用户点击”精简显示品牌”按钮时
> 从第5条开始隐藏后面的品牌(最后一条”其它品牌相机”除外)
> “精简显示品牌”按钮文本切换成”显示全部品牌”
> 去掉高亮显示的推荐品牌
*/
$(function(){
var $moreItems = $(“.SubCategoryBox>ul>li:gt(5):not(:last)”)
var $moreBtn = $(“.showmore>a”)
var $highlightItmes = $(“ul>li”).filter(“:contains(佳能),:contains(索尼)”)
$moreItems.hide()
$moreBtn.toggle(function(){
$moreItems.show()
$(“.showmore>a>span”).css(“background”, “url(img/up.gif) no-repeat 0 0”).text(“精简显示品牌”)
$highlightItmes.addClass(“promoted”)
}, function(){
$moreItems.hide()
$(“.showmore>a>span”).css(“background”, “url(img/down.gif) no-repeat 0 0”).text(“显示所有品牌”)
$highlightItmes.removeClass(“promoted”)
})
})
</script>
</html>

本文转载于:http://win-man.com

作者:云漫技术专家
本文关键词:jQuery 技术  基本 层次  过滤  表单 选择器

网络安全技术员 网站安防技术员 网络防护专家 网站维护工程师

发表评论

电子邮件地址不会被公开。 必填项已用*标注