jQuery如何获取动态添加的元素

 更新时间:2016年06月24日 10:17:33   作者:tt_yang  
这篇文章主要介绍了jQuery如何获取动态添加的元素的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

一、问题描述

  用jQuery的append()方法动态添加了一段html代码之后,发现在为新添加的元素绑定click事件时无法获取该新元素。

二、解决方法

  度娘推荐的方法基本是用live()方法

  live()的官方定义和用法:

  live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

  live()的详细使用方法可以查看jQuery live()

 live()和bind()的区别就是live不仅可以给页面中现有的元素绑定事件,还可以给将来动态添加进来的元素绑定时间。

  于是我用live()替换了bind(),但报出了新错误:TypeError: $(...).live is not a function

  经过查询以后发现,原来是jQuery 1.9及其以上已经无法使用live(),可以用on()方法代替live().

  on()的官方定义和用法:

  on() 方法在被选元素及子元素上添加一个或多个事件处理程序。自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。

  注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

   on()的详细使用方法可以查看jQuery on()

三、代码演示

html页面:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>jQuery on()方法测试</title>
</head>
<body>
<button id="click1">Click me!</button>
<p>Hello,</p>
<script src="js/jquery.min.js"></script>
<script src="js/test.js"></script>
</body>
</html> 

test.js:

$().ready(function(){
  $("#click1").bind("click",function(){
    $("p").append("<div class='new'><b>I'm clicked!</b></div>");
  });
  //on方法要先找到原选择器(p),再找到动态添加的选择器(.new)
  $("p").on("click",".new",function(){
    $(this).remove();
  });
});

  test.js中第6行实现了为动态添加的.new元素绑定click事件。应注意的是,虽然是为.new绑定事件,但on()方法却是绑定在原选择器<p>上的,然后将.new放在了参数列表中,原理参照上文on()的官方定义和用法。

  以上便是所有内容,如有需要修改或补充的地方,欢迎交流。

相关文章

  • jQuery菜单插件用法实例

    jQuery菜单插件用法实例

    这篇文章主要介绍了jQuery菜单插件用法,以一个实例形式较为详细的分析了jquery菜单插件的完整使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • JQuery中this的指向详解

    JQuery中this的指向详解

    本文详细讲解了JQuery中this的指向,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Jquery中dialog属性小记

    Jquery中dialog属性小记

    Jquery中dialog属性小记,使用jquery dialog的朋友可以参考下。
    2010-09-09
  • jQuery点击弹出层弹出模态框点击模态框消失代码分享

    jQuery点击弹出层弹出模态框点击模态框消失代码分享

    这篇文章主要介绍了jQuery点击弹出层,弹出模态框,点击模态框消失的实现代码,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-01-01
  • 巧用jQuery选择器提高写表单效率的方法

    巧用jQuery选择器提高写表单效率的方法

    这篇文章主要教大家如何巧用jQuery选择器提高写表单效率的方法,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • jquery $.trim()方法使用介绍

    jquery $.trim()方法使用介绍

    $.trim(str)的作用是去掉字符串首尾空格,下面为大家介绍下其具体的使用
    2014-05-05
  • 遍历json获得数据的几种方法小结

    遍历json获得数据的几种方法小结

    下面小编就为大家带来一篇遍历json获得数据的几种方法小结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Query中click(),bind(),live(),delegate()的区别

    Query中click(),bind(),live(),delegate()的区别

    这篇文章主要介绍了Query中click(),bind(),live(),delegate()之间的区别。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • jquery判断单个复选框是否被选中的代码

    jquery判断单个复选框是否被选中的代码

    jquery判断单个复选框是否被选中的代码,需要的朋友可以参考下。
    2009-09-09
  • Jquery Ajax Error 调试错误的技巧

    Jquery Ajax Error 调试错误的技巧

    jquery在程序开发ajax应用程序时提高了效率,减少了需要兼容性的问题,当我们在ajax项目中,遇到ajax异步获取数据出错该怎么解决呢,我们可以通过捕捉error事件来获取出错的信息,本文给大家介绍jquery ajax error调试错误的技巧,感兴趣的朋友一起学习吧
    2015-11-11

最新评论