@GivenCui
        
        2016-06-14T23:29:40.000000Z
        字数 4461
        阅读 812
    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>