jQuery的介绍和基本运用
一.简介
jQuery
是继prototype之后一个优秀的开源的JavaScript代码库(或JavaScript框架),它封装JavaScript常用的功能代码;特点:
具有独特的链式语法,可以把多个操作写在一行代码里,更加简洁; 拥有大量的选择器,不仅有高效灵活的css
选择器,并且可对CSS
选择器进行扩展; 拥有便捷的插件扩展机制和丰富的插件(树形菜单、日期控件、图片切换插件、弹出窗口等)。 核心思想:(write less,do more)写得更少,做得更多;
二.jQuery
操作方式
1. $和JQuery
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
console. log ( $) ;
console. log ( $ === jQuery)
2. 页面加载事件
< script type = " text/javascript" src = " static/jquery/jquery-2.1.3.min.js" > </ script>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
window. onload = function ( ) {
console. log ( "原生js页面加载事件......" )
}
$ ( function ( ) {
console. log ( "jquery加载页面事件......" )
} )
</ script>
3. 基本选择器
< body>
< div id = " d1" >
< span> 我系渣渣灰,一🔪九九九</ span>
< p> 我司我冠</ p>
</ div>
< h1 class = " h1" > IU不错哦</ h1>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
$ ( function ( ) {
var d1 = $ ( "#d1" ) ;
console. log ( d1) ;
var h1 = $ ( '.h1' ) ;
console. log ( h1) ;
var p = $ ( 'p' ) ;
console. log ( p) ;
var all = $ ( '*' ) ;
console. log ( all) ;
var zh = $ ( '.h1,#d1,p' ) ;
console. log ( zh) ;
} )
</ script>
</ body>
4. 毗邻选择器
< body>
< form>
< label> 姓名:</ label>
< label>
< input type = " text" >
< span style = " color : red" > 绯红之刃</ span>
</ label>
密码: < input type = " number" >
</ form>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
console. log ( $ ( 'form label' ) ) ;
console. log ( $ ( 'form input' ) ) ;
console. log ( $ ( 'form > input' ) ) ;
console. log ( $ ( 'input + span' ) ) ;
console. log ( $ ( 'label ~ input' ) ) ;
console. log ( $ ( 'label ~ label' ) ) ;
</ script>
</ body>
5. 绑定事件
< body>
< button id = " btn1" > 事件1</ button>
< button id = " btn2" > 事件2</ button>
< button id = " btn3" > 事件3</ button>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
$ ( '#btn1' ) . click ( function ( ) {
alert ( "点击了事件一" )
} ) ;
$ ( '#btn2' ) . on ( 'click' , function ( ) {
alert ( "点击了事件二" )
} )
$ ( '#btn3' ) . bind ( 'click' , function ( ) {
alert ( "点击了事件三" )
} )
$ ( '#btn2' ) . off ( 'click' ) ;
$ ( '#btn3' ) . unbind ( 'click' ) ;
</ script>
</ body>
6. 文本操作
< body>
< ul id = " ul" >
< li> 《天上人间》</ li>
< li> 《JOJO》</ li>
< li> 《斗破苍穹》</ li>
</ ul>
< div id = " d1" style = " background-color : wheat; width : 300px; height : 200px" >
</ div>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- > \
$ ( function ( ) {
console. log ( $ ( 'ul' ) . html ( ) ) ;
console. log ( $ ( 'ul' ) . text ( ) ) ;
$ ( '#d1' ) . mouseover ( function ( ) {
$ ( this ) . html ( "<span style='color: red'>hello</span>" ) ;
} ) ;
$ ( '#d1' ) . mouseout ( function ( ) {
$ ( this ) . text ( "再见" ) ;
} ) ;
} )
</ script>
</ body>
7. 取值操作
< body>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
$ ( function ( ) {
$ ( '#getVal' ) . click ( function ( ) {
var username = $ ( '#username' ) . val ( ) ;
console. log ( username) ;
console. log ( $ ( '#age' ) . val ( ) ) ;
console. log ( $ ( '#fruit' ) . val ( ) ) ;
console. log ( $ ( '#girl' ) . val ( ) ) ;
console. log ( $ ( '#boy' ) . val ( ) ) ;
} ) ;
$ ( '#setVal' ) . click ( function ( ) {
$ ( '#username' ) . val ( 'coderyeah爱喝水' ) ;
$ ( '#age' ) . val ( 22 )
$ ( '#fruit' ) . val ( 'Apple' )
$ ( '#girl' ) . val ( '00000' )
$ ( '#boy' ) . val ( '11111' ) ;
} ) ;
} )
</ script>
</ body>
8. 属性操作
< body>
< a href = " https://www.jd.com/" id = " hre1" data-abc = " 123"
data-person = ' {" id" :1," name" :" tom" ," address" :" 四川成都" }'
data-name = " 赵子龙"
data-age = " 22"
data-sex = " true" > 京东</ a>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
$ ( function ( ) {
console. log ( $ ( '#hre1' ) . attr ( 'href' ) ) ;
var abc = $ ( '#hre1' ) . data ( 'abc' ) ;
console. log ( abc) ;
var attr = $ ( '#hre1' ) . attr ( 'data-abc' ) ;
console. log ( attr) ;
var p1 = $ ( '#hre1' ) . data ( 'person' ) ;
console. log ( p1) ;
var p2 = $ ( '#hre1' ) . attr ( 'data-person' ) ;
console. log ( p2)
console. log ( JSON . parse ( p2) ) ;
console. log ( JSON . stringify ( p1) ) ;
} ) ;
</ script>
</ body>
9. 样式操作
< style>
.myClass {
background-color : #0a885e;
width : 300px;
height : 300px;
text-align : center;
}
</ style>
< div id = " d1" class = " myClass" >
i am a monster!!!
</ div>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
$ ( function ( ) {
$ ( '#d1' ) . addClass ( 'myClass' )
$ ( '#d1' ) . removeClass ( 'myClass' )
} )
</ script>
10. 元素节点操作
< div id = " d1" style = " background-color : #0a885e" >
</ div>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
$ ( function ( ) {
$ ( '#d1' ) . append ( "<span>i am stronger than you ?????</span>" )
$ ( '#d1' ) . empty ( )
} )
console. log ( $ ( '#d1' ) ) ;
</ script>
11. 原生DOM
和jQuery
的转换
< div id = " d1" > 000001</ div>
< div id = " d2" > 000002</ div>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
console. log ( document. getElementById ( "d1" ) ) ;
console. log ( $ ( '#d2' ) ) ;
console. log ( $ ( '#d2' ) [ 0 ] . innerText) ;
console. log ( $ ( document. getElementById ( "d1" ) ) . text ( ) ) ;
</ script>
12. 遍历
< ul id = " u" >
< li> 天青色等烟雨</ li>
< li> 而我在等你</ li>
< li> give up!</ li>
</ ul>
< script>
< ! -- $指代jQuery对象 如果有多个框架$发生冲突 就用 jQuery代替$ -- >
$ ( function ( ) {
var li = $ ( 'li' ) ;
li. each ( function ( index, item ) {
console. log ( index + " " + item. innerText) ;
} )
} )
</ script>
三.异步请求方式
1. Ajax实现GET请求
账号:< input type = " text" name = " username" id = " username" > < span id = " msg" style = " color : red" > </ span> < br> < br>
< button id = " btn" > 登录</ button>
< script>
$ ( function ( ) {
$ ( '#btn' ) . click ( function ( ) {
var username = $ ( '#username' ) . val ( ) ;
$. get ( "/req" , { "username" : username} , function ( res ) {
$ ( '#msg' ) . text ( res)
} , 'text' ) ;
} )
} )
</ script>
2. Ajax实现POST请求
< script>
$ ( function ( ) {
$ ( '#btn' ) . click ( function ( ) {
var username = $ ( '#username' ) . val ( ) ;
$. post ( "/req" , { "username" : username} , function ( res ) {
$ ( '#msg' ) . text ( res)
} , 'text' ) ;
} )
} )
</ script>
3. Ajax统一请求
< script>
$ ( function ( ) {
$ ( '#btn' ) . click ( function ( ) {
var username = $ ( '#username' ) . val ( ) ;
$. ajax ( {
url : '/req' ,
type : 'GET' ,
data : { "username" : username} ,
success : function ( res ) {
$ ( '#msg' ) . text ( res) ;
} ,
dataType : 'text' ,
async : true
} ) ;
} )
} ) ;
</ script>