jQuery选择器后面跟个this是什么意思 本帖最后由 wuxia2118 于 2009-07-01 10:35:30 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jQuery(html,[ownerDocument])根据提供的原始 HTML 标记字符串,动态创建由 jQuery 对象包装的 DOM 元素。 你可以传递一个手写的 HTML 字符串,或者由某些模板引擎或插件创建的字符串,也可以是通过 AJAX 加载过来的字符串。但是在你创建 input 元素的时会有限制,可以参考第二个示例。当然这个字符串可以包含斜杠 (比如一个图像地址),还有反斜杠。当你创建单个元素时,请使用闭合标签或 XHTML 格式。例如,创建一个 span ,可以用 $("<span/>") 或 $("<span></span>") ,但不推荐 $("<span>")。在jQuery 中,这个语法等同于$(document.createElement("span")) 。this指代的是each方法下的DOM对象.用来限定LI的范围. jQuery(expression,[context])这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素。 jQuery 的核心功能都是通过这个函数实现的。 jQuery中的一切都基于这个函数,或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素。默认情况下, 如果没有指定context参数,$()将在当前的 HTML 文档中查找 DOM 元素;如果指定了 context 参数,如一个 DOM 元素集或 jQuery 对象,那就会在这个 context 中查找。参考 Selectors 获取更多用于 expression 参数的 CSS 语法的信息。前面拷错... $的第一个参数是查询字符串或dom元素第二个参数是查询的上下文 $("> li > a + ul",this).slideUp(); }); //展开当前点击的元素 $("+ ul",this).slideDown(); }); 还是用上面的例子来说吧,有谁知道这个例子中上面两个this是什么意思呢 $("> li > a + ul",this).slideUp();等价于$(this).find("> li > a + ul").slideUp()在当前的DOM对象查找 为什么第一个this指代ul#accordion元素,而第二个this指代a元素呢 ,是不是因为调用each函数的是#accordion元素元素,而调用click的是a元素吗 $(document).ready(function(){ //页面载入时隐蔽除第一个元素外所有元素 $("#accordion > li > a + ul:not(:first)").hide(); //对所有元素的标题绑定点击动作 $("#accordion > li > a").click(function(){ $(this).parent().parent().each(function(){ //隐蔽所有元素 $("> li > a + ul",this).slideUp(); }); //展开当前点击的元素 $("+ ul",this).slideDown(); }); }); 有缩进才好看点.你现在看清楚层级关系.第一个this是在each下.也就是循环的是#accordion第二个是在each外的click事件处理函数.所以实际上指向的是a this是dom对象,比如$("#div"),返回一个id为div的jquery对象,这是,如果是这样:$("#div").fadeIn(400,function(){ this.innerHTML="some html code" //这个this是dom对象 $(this).html("other html code") //这个$(this)是jquery 对象}); |zyciis| 如何取得当前iframe的ID,谢谢 日期判断 一个简单的问题 一个简单的问题,请高手帮忙 LigerUI分页怎么获取pageParmName(页索引参数名)、pagesizeParmName(页记录数参数名) 在线等! JS把复选框的值传递到另外一个页面并接收。 如何在关闭窗口或退出页面时提交一个值给后台? 一个正则式的小问题 js animate 渐变隐藏 vue项目之配置本地,测试,生产环境,配置axios.defaults.baseURL,解决跨域问题 用过 simpleHTMLTree 的朋友请进! 关于JS读取本地cookie
根据提供的原始 HTML 标记字符串,动态创建由 jQuery 对象包装的 DOM 元素。
你可以传递一个手写的 HTML 字符串,或者由某些模板引擎或插件创建的字符串,也可以是通过 AJAX 加载过来的字符串。但是在你创建 input 元素的时会有限制,可以参考第二个示例。当然这个字符串可以包含斜杠 (比如一个图像地址),还有反斜杠。当你创建单个元素时,请使用闭合标签或 XHTML 格式。例如,创建一个 span ,可以用 $("<span/>") 或 $("<span></span>") ,但不推荐 $("<span>")。在jQuery 中,这个语法等同于$(document.createElement("span")) 。this指代的是each方法下的DOM对象.
用来限定LI的范围.
这个函数接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素。
jQuery 的核心功能都是通过这个函数实现的。 jQuery中的一切都基于这个函数,或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素。默认情况下, 如果没有指定context参数,$()将在当前的 HTML 文档中查找 DOM 元素;如果指定了 context 参数,如一个 DOM 元素集或 jQuery 对象,那就会在这个 context 中查找。参考 Selectors 获取更多用于 expression 参数的 CSS 语法的信息。
前面拷错...
第一个参数是查询字符串或dom元素
第二个参数是查询的上下文
});
//展开当前点击的元素
$("+ ul",this).slideDown();
});
还是用上面的例子来说吧,有谁知道这个例子中上面两个this是什么意思呢
$(this).find("> li > a + ul").slideUp()在当前的DOM对象查找
a元素呢 ,是不是因为调用each函数的是#accordion元素元素,而调用click的是a元素吗
//页面载入时隐蔽除第一个元素外所有元素
$("#accordion > li > a + ul:not(:first)").hide();
//对所有元素的标题绑定点击动作
$("#accordion > li > a").click(function(){
$(this).parent().parent().each(function(){
//隐蔽所有元素
$("> li > a + ul",this).slideUp();
});
//展开当前点击的元素
$("+ ul",this).slideDown();
});
});
有缩进才好看点.
你现在看清楚层级关系.
第一个this是在each下.
也就是循环的是#accordion
第二个是在each外的click事件处理函数.
所以实际上指向的是a
$("#div"),返回一个id为div的jquery对象,这是,如果是这样:
$("#div").fadeIn(400,function(){
this.innerHTML="some html code" //这个this是dom对象
$(this).html("other html code") //这个$(this)是jquery 对象
});