jquery中$.fn.extend给对象添加对象方法问题

jquery中$.fn.extend给对象添加对象方法问题,第1张

你好!

jQuery中通过extend()用来进行扩展,而又有jQuery.extend()和jQuery.fn.extend()两种用法。

jQuery.extend() 可以理解为jQuery类的扩展;

jQuery.fn.extend() 可以理解为jQuery实例的扩展,类似$("div")这种叫做实例,jQuery插件多基于这种方式扩展;

修改了下你的代码,如下:

<!DOCTYPE HTML>

<html>

  <head>

    <meta http-equiv="Content-Type" content="text/html charset=utf-8" />

    <script src="./jquery-1.11.1.min.js"></script>

    <script>

      function test(){

         console.log('init')

      }

      //给jQuery类扩展一个名为obj的对象,将test赋值给它

      $.extend({

         obj:test

      })

      //为$.obj也就是前面的对象继续进行扩展,相当于为它追加了一个okay方法

      $.extend($.obj,{

         'okay':function(){

            console.log('okay')

         }

      })

      $(function(){

         $("button:eq(0)").click(function(){

            $.obj()

         })

         $("button:eq(1)").click(function(){

            $.obj.okay()

         })

      })

    </script>

  </head>

  <body>

    <button>测试test()</button>

    <button>测试okay()</button>

  </body>

</html>

只是对你的代码稍微做了调整,extend的使用都是基于jQuery对象的,不管是jQuery类或是jQuery实例。

希望对你有帮助!

<script type="text/javascript">

$(function(){

a = a()

alert(a.html())

})

function a(){

//return $('<div>123</div>').appendTo('body').html()//返回刚刚添加的div的innerHTML,就是123

return $('<div>123</div>').appendTo('body')//返回刚刚添加的div对象

}

</script>

jquery这样将div添加到body之后,本身就是那个div的对象了,后面可以衔接你对该div的其他 *** 作,例如addClass之类的,或者直接返回

应当使用append()方法,因为html()方法用于设置内容时,会重写所有匹配元素的内容,因此会替换。

1、关于append()方法定义和用法:

append() 方法在被选元素的结尾插入指定内容。此外,如需在被选元素的开头插入内容,请使用 prepend() 方法。

2、语法:

$(selector).append(content,function(index,html))。

3、设计一个简单的html页面,存在一个div,和一个添加按钮。

4、设计简单的css样式:

5、此时的页面展示如下:

6、设计一个简单的select元素:

7、此时点击一次按钮,查看页面效果:

8、再次点击,如下出现两个select。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11937655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存