当新手遇到 jQuery.fn.extend

红魔大卫 2014-09-09 12:43:55
(function ($) {
$.fn.extend({
test: function () {
var $this = $(this);
$this.find('div').html('test');

},
     test: function () {
var $this = $(this);
$this.find('div').html('test');

}
});
})(jQuery);


测试代码如上

我也在页面初始化的时候调用 $("#test").test(); $("#test1").test1();
是没问题的。
然后 我想通过按钮点击来触发这个方法
发现调用时候 显示 undefined
我用控制台 ("#test1").test1 可以找到这个方法,但是("#test1").test1() 时候就提示undefined 我想问下是什么原因

新手学习,求指教.
...全文
224 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2014-09-10
  • 打赏
  • 举报
回复
("#test1").test1 可以找到这个方法, 但是("#test1").test1() 时候就提示undefined 那就说明 test1这个方法里面执行的时候出问题了
wz_307 2014-09-10
  • 打赏
  • 举报
回复
引用 2 楼 yun15090 的回复:
[quote=引用 1 楼 wz_307 的回复:] LZ定义了2个test扩展啊? 还有, 如果只是笔误的话, 应该不是test1方法找不到, 而是有可能在执行test1内的逻辑时, 有东西为undefined
写错了,下面那个是test1 方法[/quote] 把代码完整的发出来看看嘛!
XZowie 2014-09-10
  • 打赏
  • 举报
回复
控制台看到的是回傳值, undefined是因為test()並無回傳任何東西
Go 旅城通票 2014-09-09
  • 打赏
  • 举报
回复
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<input type="button" onclick='$("#test").test(); $("#test1").test1();' value="Click Me" />
<div id="test"><div></div></div><div id="test1"><div></div></div>
<script>
    (function ($) {
        $.fn.extend({
            test: function () {
                var $this = $(this);
                $this.find('div').html('test1');

            },
            test1: function () {
                var $this = $(this);
                $this.find('div').html('test2');

            }
        });
    })(jQuery); 
</script>
不明白undefined是怎么来的,问题说的太不清不楚
萧萧闪凌风 2014-09-09
  • 打赏
  • 举报
回复
<html>
<head>
</head>
<body>
<div id="test1"><input type="button" id ="test" name="test" /><div>xxxxdemo<div></div>
<script type="text/javascript" src ="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>
<script language="javaScript">
(function ($) {
    $.fn.extend({
         test: function () {
            var $this = $(this);
            $this.find('div').html('test');
             
        },
		test1: function () {
            var $this = $(this);
            $this.find('div').html('test');
             
        }
   }); 
})(jQuery); 
 $(document).ready(function(){
	//$("#test1").test1(); 
	$("#test").click(function(){$("#test1").test1();});
   });
</script>
</body>
</html>
是否是html找不到对应标签
红魔大卫 2014-09-09
  • 打赏
  • 举报
回复
引用 1 楼 wz_307 的回复:
LZ定义了2个test扩展啊? 还有, 如果只是笔误的话, 应该不是test1方法找不到, 而是有可能在执行test1内的逻辑时, 有东西为undefined
写错了,下面那个是test1 方法
wz_307 2014-09-09
  • 打赏
  • 举报
回复
LZ定义了2个test扩展啊? 还有, 如果只是笔误的话, 应该不是test1方法找不到, 而是有可能在执行test1内的逻辑时, 有东西为undefined

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧