jQuery的细枝末节

前言

你常用jQuery的each方法吗?你知道怎么continue?怎么break吗?不知道就看看吧,一点一点总结。

皓眸大前端开发学习

转载请注明出处:http://www.haomou.net/2014/09/05/2014_jquery/

each中的break

each实质上是一个for循环,那么能不能像普通的for循环那样break和continue呢?如下代码是可行的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<select id="branchName">
<option value="10">北京分公司</option>
<option value="11">天津分公司</option>
<option value="12">河北分公司</option>
<option value="13">山西分公司</option>
</select>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$("option").each(function(){
if($(this).val() == 11){
return false; // false时相当于break, 如果return true 就相当于continue。
}
alert($(this).val());
});
</script>

结论如下:
each循环中return false时相当于break, 如果return true 就相当于continue。

chrome对hash对象自动排序

问题描述:

1
2
例如输入:var a = {'a':'aaa','c':'ccc','b':'bbb'};
使用a是的输出则会变成:var a = {'a':'aaa','b':'bbb','c':'ccc'};

已查到V8的相关文档。Chrome会发生、FireFox不会。经测试,webkit核心的浏览器都会这样,手机浏览器也不例外。浏览器会默认按key键值排序后输出hash对象。这个问题没有根本的解决办法,投机的方法是:

1
2
例如输入:var a = {'_a':'aaa','_c':'ccc','_b':'bbb'};
例如输入:var a = {'_11':'aaa','_33':'ccc','_22':'bbb'};

stackoverflow提问:http://stackoverflow.com/questions/6166905/chrome-sorts-objects-by-key
google文档:http://code.google.com/p/v8/issues/detail?id=164

谢谢!

转载请注明出处:http://www.haomou.net/2015/11/26/2015_jquery_sum/

欢迎关注皓眸学问公众号(扫描左侧二维码),每天好文、新技术!任何学习疑问或者工作问题都可以给我留言、互动。T_T 皓眸大前端开发学习 T_T