jQuery判断当前元素是第几个元素
html如下:
<ul>
<li>jQuery判断当前元素是第几个元素示例</li>
<li>jQuery获取第N个元素示例</li>
<li>jQuery选择器示例</li>
</ul>
如果我们点击任何一个li标签,想知道当前点击的是第几个li标签,并输出点击标签html,可以使用下面的代码:
$("ul li").click(function(){
var index = $(this).index();// index()是在兄弟元素中排行位置,从0开始
alert(index);
console.log($(this).html());// html()
})
如上面的jQuery代码,如果点击的第一个会提示”0″,如果是第二个li标签会提示”1″,注意索引序列号是从0开始的。
jQuery 获取第N个元素
同理,如果我们要获取第二li标签元素,可以使用下面的代码
var element=$("ul li").eq(1);
alert($(element).html());
注意索引是从0开始的,因此上面的代码会输出第二个li标签的html内容。
on bind 区别
1. bind():为每个匹配元素的特定事件绑定事件处理函数。
bind(type,[data],fn) type: 含有一个或多个事件类型的字符串,由空格分隔多个事件。 比如"click"或"submit",还可以是自定义事件名。 data:作为event.data属性值传递给事件对象的额外数据对象 fn:绑定到每个匹配元素的事件上面的处理函数
2:on()在选择元素上绑定一个或多个事件的事件处理函数。
on(events,[selector],[data],fn) events:一个或多个用空格分隔的事件类型和可选的命名空间, 如"click"或"keydown.myPlugin" 。 selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择的< null或省略,当它到达选定的元素,事件总是触发。 data:当一个事件被触发时要传递event.data给事件处理函数。 fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。
对比发现on 和bind的 差别不大, 但是on多一个[selector] 可以过滤指定元素
bind与on的区别就在于–事件冒泡
demo1:
## 点击相应的li弹出里面内容,这里把on换成bind是一样的没有区别.也就是说on不使用selector属性与bind并无区别
1 2 3 4 5 6 7 8 9 10 11 12 |
|
demo2:
1 2 3 4 5 6 7 8 9 10 11 |
|
demo3
1 2 3 4 5 6 7 8 9 10 |
|
事件委托的好处
- 万一子元素非常多,给每个子元素都添加一个事件,会影响到性能;
- 为动态添加的元素也能绑上指定事件;