当前位置 : 主页 > 网页制作 > JQuery >

jQuery操作和选择器

来源:互联网 收集:自由互联 发布时间:2021-06-15
一、jQuery注册事件 事件三要素:事件源、事件类型、事件处理程序 语法: jQuery对象.事件名不加on(事件处理程序); jQuery可以给组注册事件。但是在DOM中不能给组注册事件。 1 body 2 butt

一、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>
网友评论