Jquery(一)选择器
一、Jquery语法
语法:$(“选择器”).action()
$:核心函数
选择器:JQuery 查找网页元素的表达式,返回的是 jquery 对象
action:jquery 内置函数,实现特定的功能
核心函数功能:获取dom对象、创建dom对象、克隆dom对象
二、Jquery对象
概念:使用jquery封装的Dom对象叫做jquery对象。
1.优缺点:
•优点:jQuery 的扩展属性和函数在底层判断了浏览器以及版本实现了浏览器的兼容。
•缺点:jQuery 扩展的函数只能实现基本的 dom 操作,但是对于元素独有的 htmldom 接口 封装很少(例如 input、select()),对于 html5 新增的 DOM 方法也不支持,如果想实现类似功 能,只能使用 dom 接口。
结论:为保证兼容性尽量使用 jQuery 对象的 API,但特殊功能也需要使用原生 dom 接口。
2.编码习惯
如果获取的是 jQuery对象,那么要在变量前面加上$。
•var $variable=jQuery对象
•var variable=DOM对象
3、DOM 转 Jquery 对象
1.语法
var $jquery 变量=$(dom 对象);
2.案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
// 使用 js 给 div 赋值
/* function dian(){
//1.得到 div 的 dom 对象
var div1=document.getElementById("div1");
//2.赋值
div1.innerHTML="我是 div 的内容";
} */
//使用 jquery 给 div 赋值
/* function dian(){
//1.得到 div 的 jquery 对象
var $div=$("#div1");
//2.赋值
$div.html("我是 Jquery 的 div 的内容");
} */
//Dom 对象转换为 jquery 对象
function dian(){
//1.得到 div 的 dom 对象
var div1=document.getElementById("div1");
//1.使用$(dom 对象)得到 div 的 jquery 对象
var $div=$(div1);
//2.赋值
$div.html("我是 Jquery 的 div 的内容");
}
</script>
</head>
<body>
<div id="div1"> </div>
<button type="button" onclick="dian()">点我</button>
</body>
</html>
4、JQuery 转 Dom 对象
1、语法
1. jquery 对象[index]
2. jquery 对象.get(index)
2、案例
//Jquery 对象转为 dom 对象
function dian(){
//1.得到 div 的 jquery 对象
var $div=$("#div1");
//2.1.使用 jquery 对象[index] //
var div=$div[0];
//2.2.使用 jquery 对象.get(index)
var div=$div.get(0);
//3.赋值
div.innerHTML="我是 div 的内容";
}
<body>
<div id="div1"> </div> <button type="button" onclick="dian()">点我</button>
</body>
三、Jquery选择器
概念:用于获取 jQuery 对象的表达式
语法:$(“选择器表达式”)
1、基本选择器(※)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>
<script type="text/javascript">
//获取元素
//根据id 获取只能是一个
//根据其他属性 基本上都是多个元素。
//css id 能重复吗 ?
// id 理论上不能重复,但是在css id 可以重复(规范不可以)
// id重复不影响css的效果,因为其他前端语法,认为id是不可重复
// 所以当js通过id获取元素的时候,认定根据id获取,只能是唯一的。所以即使你重复了,它也只获取其中的第一个。
function change_color () {
document.getElementsByClassName("d")[1].style.backgroundColor="red";
}
$(function(){
// $("标签名称")就可以直接获得元素 ==多个
//也不需要遍历直接就可以给这些元素进行赋值。
// text == innerText
// html == innerHtml
// text 和 html 有什么区别吗?
// text 直接将你写的字符串赋值到指定标签中间。
// html 如果字符串当中有html标签,在赋值的时候会让html标签生效。
// css 是给属性进行样式的赋值
$("#cd").html("<h1>1</h1>");
$("#cd").css("background-color","#000000");
//标签选择器:$("标签名称")
//类选择器:$(".类名")
//id选择器:$("#id")
//统配 $("*")
})
</script>
<style type="text/css">
.d{
width: 50px;
height: 50px;
border: 1px black solid;
}
</style>
</head>
<body>
<div class="d"></div>
<div class="d"></div>
<div class="d"></div>
<div class="d"></div>
<div id="cd"></div>
<div class="d"></div>
<div class="d"></div>
<div class="d"></div>
<div class="d"></div>
<div class="d"></div>
<div class="d"></div>
<input type="button" value="改颜色" onclick="change_color()" />
</body>
</html>
效果展示:
组合(合并)选择器 语法: $(选择器 1,选择器 2,选择器 3,…) 或的关系(合并)
将每一个选择器匹配到的元素合并后一 起返回。你可以指定任意多个选择器,并将匹配到的元素合并到一个结果内
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
function dian() {
$("div,span,p.myClass").css("background", "red");
}
</script>
</head>
<body>
<div>div</div>
<p class="myClass">p class="myClass"</p>
<span>span</span>
<p class="notMyClass">p class="notMyClass"</p>
<button type="button" onclick="dian()">点我</button>
</body>
</html>
$(“div,span,p.myClass”).css(“background”, “red”);注意此处 p 和 .myClass 之间没有逗号,类名选择器前不加逗号。
2、属性选择器(掌握)
概念:通过元素的属性获取相应的元素
$("input[id][name$='man']")
是复合属性选择器,需要同时满足多个条件时使用。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--属性选择器-->
<script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>
<script type="text/javascript">
$(function(){
$("[name='1']").css("background-color","aqua");
// 获得含有name属性并且值等于username的标签
$("input[name='2']").css("background-color","red");
// 获得 input 标签 中 得含有name属性并且值等于username的标签
$("[value]").css("background-color","yellow")
// 获得含有name属性的标签
$("input[class]").css("background-color","gray")
//获得input标签中含有name属性
$("input[id][name='hello']").css("background-color","pink")
// 属性选择器可以使用多个属性搭配进行检索。
// !不等于 ^开头 $ 结尾 *通配
$("[name^='child']").css("background-color","cornflowerblue")
$("[name$='age']").css("background-color","blue");
// $("input[name!='username']").css("background-color","currentcolor")
$("[name*='u']").css("background-color","green");
})
</script>
</head>
<body>
<input type="text" name="1" />
<input type="text" name="2" />
<input type="password" name="name" value="3"/>
<input type="text" name="password" class="4"/>
<input type="text" name="childname" />
<input type="text" name="oldage" />
<input id="uname" type="text" name="hello"/>
<input type="text" name="username" />
<input type="text" name="username" />
<input type="text" name="username" />
</body>
</html>
效果展示:
3、层次选择器(不常用)
通过 DOM 元素之间的层次关系来获取特定元素,例如后代元素,子元素,相邻元素,兄弟元素等
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery-1.10.2.min.js" ></script>
<script type="text/javascript">
$(function(){
// 获取 table 下th标签
$("table th").css("background-color","pink");
//注意此处如果写$("table>tr")会无效,因为tr不是table的直接子元素
$("table> tbody").css("background-color","yellow");
$("table+div").css("border","2px solid #666");
$("#e~p").css("color","red");
})
</script>
</head>
<body>
<table border="1">
<thead>
<th>123</th>
<th>123</th>
<th>123</th>
</thead>
<tbody>
<tr id="he">
<td><h1>1</h1></td>
<td><h1 class="co">1</h1></td>
<td><h1>1</h1></td>
</tr>
<tr>
<td><h1>2</h1></td>
<td><h1 class="co">2</h1></td>
<td><h1>2</h1></td>
</tr>
<tr>
<td><h1>3</h1></td>
<td><h1 class="co">3</h1></td>
<td><h1>3</h1></td>
</tr>
</tbody>
</table>
<div style="width: 100px;height: 100px;"></div>
<div>
<p id="e">hello world</p>
<p>锦瑟无端五十弦</p>
<p>一弦一柱思华年</p>
</div>
</body>
</html>
效果展示:
4、基础过滤选择器
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<h2>Happiness</h2>
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
</ul>
<script type="text/javascript">
// $("li:not(:last)").css("background", "red");//在返回集合清除不匹配的指定元素
$("li:first").css("color","orange");//匹配找到的第一个元素
$("li:last").css("color","pink");//匹配找到的最后一个元素
$("li:odd").css("background","lightblue");//匹配返回结果集合中索引值为奇数的元素
$("li:eq(2)").css("color","green");//匹配返回结果集合中索引值第index位置的元素
$(":header").css("background","pink");//匹配h1-h6的标题元素
</script>
</body>
</html>
效果展示:
5、子元素过滤器
6、内容过滤器(不常用)
7.可见性过滤选择器
8、表单类型过滤器
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<form>
<input type="hidden" /><br />
<input type="image"/><br />
<input type="password" /><br />
<input type="radio" /><br />
<input type="submit" /><br />
<input type="text" />
<button type="button" onclick="test()">点我</button>
</form>
<script type="text/javascript">
function test(){
// $(":input").css("background","gray");
$(":text").css("background","red");
$(":password").css("background","yellow");
$(":radio").prop("checked",true);
$(":checkbox").css("background","blue");
$(":submit").css("background","lightblue");
$(":image").css("background","orange");
}
</script>
</body>
</html>
效果展示:
9.表单状态过滤器
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="js/jquery-1.10.2.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
function test() {
//查找所有可用的 input 元素
$("input:enabled").css("background","red");
// 查找所有不可用的 input 元素
$("input:disabled").css("background","yellow");
$("input:checked").each(function(){
//this 代表当前被访问的 dom 对象
console.log(this.value);
});
}
</script>
</head>
<body>
<form>
<input name="email" disabled="disabled" /><br />
<input name="id"/><br />
<input type="checkbox" name="newsletter" checked="checked" value="Daily" />
<input type="checkbox" name="newsletter" value="Weekly" />
<input type="checkbox" name="newsletter" checked="checked" value="Monthly" />
</form>
<select>
<option value="1">Flowers</option>
<option value="2" selected="selected">Gardens</option>
<option value="3">Trees</option>
</select>
<button type="button" onclick="test()">点我</button>
</body>
</html>
效果展示:
总结
以下内容需要掌握,本文提供知识点并不够详尽,后续会继续补充,祝看到最后的你天天开心,如果有帮助到你的话就点赞收藏吧!
1.语法:$(“选择器”).action()
2.互转1.dom->jquery:$(dom 对象) 2.jquery->dom: 1.jquery 对象[index] 2.jquery 对象.get(index)
3.选择器1.语法:$(“选择器表达式”) 2.基本选择器 1.id:$("#id") 2.类:$(".类名") 3.元素:$("元素名")
4.组合选择器:$(“选择器 1,选择器 2,选择器 3,...”)
5.属性选择器 1.[id] 2.[属性=值] 3.[属性!=值] 4.[属性^=值] 3.[属性$=值] 3.[属性*=值] 3.[属性=值][属性=值][属性=值]
6.层次选择器 1.后代:$("parent child") 2.子:$("parent>child") 3.相邻的下一个:$("prev+next") 4.prev ~ siblings:匹配 prev 元素之后的所有 siblings 元素