大佬教程收集整理的这篇文章主要介绍了jQuery add()函数和jQuery对象的上下文,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<div id='div1'>div one</div> <div id='div2'>div two</div>
…我发现以下jQuery代码…
$('#div1').click(function() { var $d = $(this); // Using 'this' instead of '#div1' $d.add('#div2').remove(); });
$('#div1').click(function() { var $d = $('#div1'); // Using '#div1' instead of 'this' $d.add('#div2').remove(); });
…成功添加#div2.
在查询firebug时,我发现使用$(this)给了jQuery对象一个#div1的上下文,但是做$(‘#div1’)给对象一个文档的上下文.
鉴于这些信息我试过…
var $d = $(this,document);
…和add()函数按预期工作.
所以这里的问题.有人可以向我解释为什么在使用$(this)vs $(‘#div1’)时分配了不同的上下文?
注意:您可以随时检查上下文,它是一个可用的属性,如下所示:$(this).context
对于.add()
行为:
.add()使用相同的上下文来选择要添加的jQuery元素,所以你看到的是预期的行为.为了更好的描述,see how .add()
is written:
add: function( SELEctor,context ) { var set = typeof SELEctor === "String" ? jQuery( SELEctor,context || this.context ) : jQuery.makeArray( SELEctor ),all = jQuery.merge( this.get(),set ); return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ? all : jQuery.unique( all ) ); }
注意如果没有通过,它将如何使用当前上下文.为了覆盖这一点,它接受一个上下文,您可以通过这个上下文传递文档并获得所需的结果,如下所示:
$('#div1').click(function() { $(this).add('#div2',document).remove(); });
以上是大佬教程为你收集整理的jQuery add()函数和jQuery对象的上下文全部内容,希望文章能够帮你解决jQuery add()函数和jQuery对象的上下文所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。