@GivenCui
2016-06-15T07:29:40.000000Z
字数 4461
阅读 663
jQuery
jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。基础语法: $(selector).action( )
基础语法: jQuery(selector).action( )$与jQuery等价
美元符号定义 jQuery
选择符(selector)"查询"和"查找" HTML 元素
jQuery 的 action() 执行对元素的操作
实例:
$(this).hide() - 隐藏当前元素
$("p").hide() - 隐藏所有 <p> 元素
$("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素
$("#test").hide() - 隐藏所有 id="test" 的元素
为了防止文档在完全加载(就绪)之前运行 jQuery 代码。
如果在文档没有完全加载之前就运行函数,操作可能失败。
等价于window.onload = function () { // here };
$(document).ready(function(){
// jQuery methods go here...
});
$(function(){
// jQuery methods go here...
});
一. 重新认识下DOM
DOM是Document Object Model, 文档对象模型,它是javascript和html之间的接口, DOM是典型的树形结构.
二. 节点关系
1. 父节点
2. 子节点
3. 后代节点
4. 兄弟节点
三. 常用的选取元素的方式
1. document.getElementById()
2. document.getElementsByTagName()
3. document.getElementsByName()
jQuery构造函数, 通过传入CSS选择器作为参数, 能让我们轻松的获得想要的元素或元素集合.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery的基本选择器</title>
<script type="text/javascript" src="../../../../../jquery-2.2.3.js"></script>
<script type="text/javascript">
// 获得ID为my_p的P元素
//
// JS原生的
//
// jQuery对象和DOM对象的转换
var p2 = $("#my_p"); // 获得jQuery对象
console.log(p2.html());
var domP = p2.get(0); // jQuery对象转换成DOM对象
console.log(domP.innerHTML);
var p3 = $(domP); // DOM对象转换成jQuery对象
cosole.log(p3);
</script>
</head>
<body>
<p>第一个p标签.</p>
<p id="my_p">my_p标签.</p>
</body>
</html>
语法: $("tagName")
element: 要搜索的元素。引用DOM节点的tagName属性。
在使用这个表达式的时候,会调用了JavaScript的getElementByTagName()函数,以返回适当的元素。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>element demo</title>
<style>
div, span {
width: 60px;
height: 60px;
float: left;
padding: 10px;
margin: 10px;
background-color: #eee;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div>DIV1</div>
<div>DIV2</div>
<span>SPAN</span>
<script>
$( "div" ).css( "border", "9px solid red" );
</script>
</body>
</html>
语法:$( ".class" )
class: 一个用来搜索的样式类。一个元素可能带有多个样式类;只要有其中一个样式类匹配。
对于选择器,jQuery使用JavaScript的原生getElementsByClassName()函数,如果浏览器支持它的话。
$("[name = 'value']")
获得元素name属性为value的所有元素
选择器表达式中的元素属性值必须遵守W3C CSS选择器的规则;一般来说,这意味着除了有效的标识符之外的别的东西用引号包围起来。
双引号在单引号里面:$('a[rel="nofollow self"]')
单引号在双引号里面:$("a[rel='nofollow self']")
在单引号里面转义单引号:$('a[rel=\'nofollow self\']')
在双引号里面转义双引号:$("a[rel=\"nofollow self\"]")
jQuery( "selector1, selector2, selectorN" )
selector1: 任何有效的选择器。
selector2: 任何有效的选择器。
selectorN: 根据你的喜好,添加任意个有效的选择器。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>multiple demo</title>
<style>
div, span, p {
width: 126px;
height: 60px;
float: left;
padding: 3px;
margin: 2px;
background-color: #eee;
font-size: 14px;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div>div</div>
<p class="myClass">p class="myClass"</p>
<p class="notMyClass">p class="notMyClass"</p>
<span>span</span>
<script>
$( "div, span, p.myClass" ).css( "border", "3px solid red" );
</script>
</body>
</html>
$( "ancestor descendant" )
ancestor: 任何有效的选择器。
descendant: 一个用来筛选后代元素的选择器。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>descendant demo</title>
<style>
form {
border: 2px green solid;
padding: 2px;
margin: 0;
background: #efe;
}
div {
color: red;
}
fieldset {
margin: 1px;
padding: 3px;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<form>
<div>Form is surrounded by the green border.</div>
<label for="name">Child of form:</label>
<input name="name" id="name">
<fieldset>
<label for="newsletter">Grandchild of form, child of fieldset:</label>
<input name="newsletter" id="newsletter">
</fieldset>
</form>
Sibling to form: <input name="none">
<script>
$( "form input" ).css( "border", "2px dotted blue" );
$( "form fieldset input" ).css( "backgroundColor", "yellow" );
</script>
</body>
</html>
$( "parent > child" )
parent: 任何有效的选择器。
child: 一个用来过滤子元素的选择器。
限制了层级关系必须是父子关系
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>child demo</title>
<style>
body {
font-size: 14px;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<ul class="topnav">
<li>Item 1</li>
<li>Item 2
<ul>
<li>Nested item 1</li>
<li>Nested item 2</li>
<li>Nested item 3</li>
</ul>
</li>
<li>Item 3</li>
</ul>
<script>
$( "ul.topnav > li" ).css( "border", "3px double red" );
</script>
</body>
</html>