网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月14日漏签0天
javascript吧 关注:269,156贴子:906,361
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 52回复贴,共2页
  • ,跳到 页  
<<返回javascript吧
>0< 加载中...

闲来无事,聊聊jQuery中容易被忽略的方法

  • 只看楼主
  • 收藏

  • 回复
  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
额...
说实话,其实我想做一个闲来无事系列...


  • hzwzjwy
  • Boolean
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


2026-07-14 10:01:35
广告
不感兴趣
开通SVIP免广告
  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
.index()
你也许会说:我去,这个谁不知道啊。。。
我觉得我接下来说的也许你真的不知道。
先上一段html:
<div id="test">
<span class="a"></span>
<span class="b"></span>
</div>
这个差不多就够了,接下来,我们用 .index():
$('.b').index('#test span');//1
$('.b').index($('#test span'));//-1
如果你什么都没发现,那请再仔细看。


  • hzwzjwy
  • Boolean
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
继续!


  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
.index()
有三种用法:
1. .index(),无参数情况。得到当前jQuery对象里第一个Node元素在兄弟节点中的排行(这个就不多说了,容易弄混的是后面俩)
2. .index(selector),参数:selector,字符串类型,作用是,得到当前jQuery对象里第一个Node元素在 selector对应的Nodelist里的位置。
3. .index(element|jQuery),参数:element or jQuery对象,作用是,得到参数对象在调用index方法的jQuery对象中的位置,如果参数里不止一个Node对象,只要第一个。
第二种用法和第三种用法是完全相反的。
请不要中招哦。


  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如上题,正确写法是:
$('.b').index('#test span');//1
$('#test span').index($('.b'));//1
这两个表达式是在做同一件事。


  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
$.map() 与 .map()
直接上例子吧
$.map([1], function(k) {
console.log(k);//1
});
$([1]).map(function(k) {
console.log(k);//0
});
大家可以看到,这俩function虽然功能一样,但是有明显的差异,callback 传入的参数位置可不同哦!千万不要中枪哦,这就不再继续多说了。
特别说明,$.each() 与.each() 参数是一致的,只是map有点怪怪的。


  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
.each()
我们常用的方法是:
$([1]).each(function(k) {
console.log(k===2);//false
});
其实还有另外一种用法:
$([1]).each(function(k) {
console.log(k===2);//true
}, [2]);
某些时候,还是会用到的。


2026-07-14 09:55:35
广告
不感兴趣
开通SVIP免广告
  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下面介绍一个容易被忽略的js方法:.end(),我认为很有趣。
先是一段html:
<div id="test">
<span class="a"></span>
</div>
假设我们需要做这几件事:给div设置css样式,给span设置css样式,最后需要将div append到body里。
$('#test').css('color', 'red').children('.a').css('color', 'blue').end().appendTo($(document.body));
非常适合那种喜欢一句完成很多工作的同学使用。


  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
.end() 是一种往回追溯缓存的方法,例如:
var $obj = $('#a .b').find('.c').next('.d');
$obj.end() 就是 $('#a .b').find('.c')
$obj.end().end() 就是 $('#a .b')
嘿嘿,我想我说的够清晰了吧,放心的用吧。


  • hzwzjwy
  • Boolean
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
快点更啊!


  • ft2gs
  • ifelse
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
总结的不错,嘿嘿


  • 马N甲N号
  • Math
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如果是原创,本吧首发,还能继续更新,会加精哦
@1950195


  • swx1995
  • Number
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
马克


2026-07-14 09:49:35
广告
不感兴趣
开通SVIP免广告
  • 1950195
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
$.proxy()
这个方法很多新人不知道用,所以我举个例子。
我曾经遇到过这样的问题:
var obj = {
name: 'test',
fn: function() {
console.log(this.name);
}
};
setTimeout(obj.fn, 100);
返回值是 undefined,并非我想要的'test', 因为setTimeout执行callback的时候,指向的this是window对象,这时候 proxy就体现出神奇之处了。
var obj = {
name: 'test',
fn: function() {
console.log(this.name);
}
};
setTimeout($.proxy(obj.fn, obj), 100);
这样就可以了,相当于给obj.fn强制this===obj。
额,感觉到高手嘘声一片了。。。 我承认这层楼有点水。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 52回复贴,共2页
  • ,跳到 页  
<<返回javascript吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示