一、jQuery注册事件
事件三要素:事件源、事件类型、事件处理程序
语法:jQuery对象.事件名不加on(事件处理程序);
jQuery可以给组注册事件。但是在DOM中不能给组注册事件。
1 <body>
2 <button>按钮</button>
3 <ul>
4 <li>我是列表项1</li>
5 <li>我是列表项2</li>
6 <li>我是列表项3</li>
7 <li>我是列表项4</li>
8 <li>我是列表项5</li>
9 </ul>
10 <script src="lib/jquery-1.12.4.js"></script>
11 <script>
12 $('li').click( function() {
13 //在事件处理程序中,this是DOM对象
14 alert( $(this).text() ); //text内不传参数表示获取内容
15 });
16 </script>
17 </body>
知识兔这里存在隐式迭代现象:jQuery内部自动循环,为每一个元素注册事件。
二、jQuery操作样式
1. 设置单个样式
语法:jQuery对象.css(name,value);
1 <body>
2 <div></div>
3 <script src="lib/jquery-1.12.4.js"></script>
4 <script>
5 //分次设置样式
6 $('div').css('width', 500); //值可以直接写数字不用加px单位,也可以写成字符串‘500px’
7 $('div').css('height', '500px');
8 $('div').css('background', 'red');
9
10 //一次设置多个样式
11 $('div').css({
12 width: 500,
13 height: 500,
14 background: 'red'
15 })
16 </script>
17 </body>
知识兔2. 获取
语法:jQuery对象.css(name);
1 <body>
2 <div></div>
3 <script src="lib/jquery-1.12.4.js"></script>
4 <script>
5 var w = $('div').css('width');
6 console.log(w); //字符串 500px。
7 console.log(parseInt(w)); //转成数字 500。
8 </script>
9 </body>
知识兔三、选择器
1. 基本选择器
2. 层级选择器
3. 过滤器选择器
表格隔行变色效果:
1 <script>
2 //索引为奇数的tr设置为灰色。对于用户是偶数行
3 $('tbody tr:odd').css('background', '#ccc');
4 //索引为偶数的tr设置为蓝色
5 $('tbody tr:even').css('background', 'skyblue');
6 //筛选第三个tr设置字体颜色为红色
7 $('tbody tr:eq(2)').css('color', 'red');
8 </script>
知识兔4. 选择器
只有jQuery才能 . 出这些方法,DOM不能。
1)children方法
1 <body>
2 <ul>
3 <li>列表项1</li>
4 <li>列表项2</li>
5 <li>列表项3</li>
6 </ul>
7 <script src="lib/jquery-1.12.4.js"></script>
8 <script>
9 console.log( $('ul>li') );
10 console.log( $('ul').children() ); //获取ul父子关系下的子元素li
11 </script>
12 </body>
知识兔2)find方法
find方法使用时必须传入参数
1 <script>
2 //获得list类名下的所有li,包括子元素和孙元素
3 console.log( $('.list').find('li') );
4 </script>
知识兔3)下拉菜单案例
1 <script src="lib/jquery-1.12.4.js"></script>
2 <script>
3 var $lis = $('#menu').children();
4 $lis.mouseenter(function() {
5 //给当前的li 内部的ul 更改样式display
6 $(this).find('ul').css('display','block');
7 });
8 $lis.mouseleave(function() {
9 $(this).find('ul').css('display','none'); //find方法也可以换成children
10 });
11 </script>
知识兔4)其他选择器筛选方法
手风琴菜单效果:
1 <script>
2 $('span').click(function() {
3 //让当前点击的span 的下一个兄弟元素 的div 变为显示
4 $(this).next().css('display', 'block');
5 //当前点击的span的 父元素的 li的兄弟们 中的div 变为隐藏
6 $(this).parent().siblings().find('div').css('display', 'none');
7 });
8 </script>
知识兔5)选择器eq和方法eq的区别
1 <body>
2 <ul>
3 <li>列表项1</li>
4 <li>列表项2</li>
5 <li>列表项3</li>
6 </ul>
7 <script src="lib/jquery-1.12.4.js"></script>
8 <script>
9 //选择器:eq(index)
10 $('li:eq(1)').css('color', 'red');
11 //方法: jQuery对象.eq(index)
12 $('ul li').eq(1).css('color', 'red');
13 </script>
14 </body>
知识兔当索引保存在变量中时,推荐用方法,不要用选择器
1 var index = 1;
2 $('li:eq(' + index + ')').css('color', 'red');
3 $('ul li').eq(index).css('color', 'red');
知识兔6)index方法
jQuery对象.index(); 获取元素在同级元素中的索引
1 <body>
2 <ul>
3 <li>列表项1</li>
4 <li>列表项2</li>
5 <li>列表项3</li>
6 <li>列表项4</li>
7 <li>列表项5</li>
8 </ul>
9 <script src="lib/jquery-1.12.4.js"></script>
10 <script>
11 $('li'),click(function() {
12 alert( $(this).index );
13 });
14 </script>
15 </body>
知识兔
知识兔