精华帖 (6) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2012-02-07
介绍的真不错.
|
|
返回顶楼 | |
发表时间:2012-02-08
没用过这么复杂的选择器.
|
|
返回顶楼 | |
发表时间:2012-02-08
__游乐场 写道 没用过这么复杂的选择器.
可能是没写过太复杂的页面,哈哈。我在第八章(下)http://www.iteye.com/topic/660063里介绍了一个例子,那个例子的原型是一个很复杂的页面,前前后后改了4次结构,历时1个多月,就是一个dialog而已,这种场景就需要很多的“复杂的”选择器。如果只是简单的页面开发,用不到太多,id选择器和class选择器就差不多够了。 |
|
返回顶楼 | |
发表时间:2012-02-09
WX,抱歉啊楼主,我点收藏呢,结果点到隐藏了....
|
|
返回顶楼 | |
发表时间:2012-02-09
最后修改:2012-02-09
距离上一章真的好长时间,我也通过这本书从java转向了JavaScript,真的是很棒的一本书讲的很清晰透彻;感谢楼主 var person = [ {name : "jack", age : 26}, {name : "johb", age : 23}, {name : "smith", age : 20}, {name : "abruzzi", age : 26}, {name : "juntao", age : 25}, {name : "jim", age : 24}, {name : "bob", age : 24} ]; $.each(person, function(item){ this.name = this.name.toUpperCase(); });
var person = [ {name : "jack", age : 26}, {name : "johb", age : 23}, {name : "smith", age : 20}, {name : "abruzzi", age : 26}, {name : "juntao", age : 25}, {name : "jim", age : 24}, {name : "bob", age : 24} ]; $.map(person, function(item){ return item.name; }); 结果得到名字组成的数组:
|
|
返回顶楼 | |
发表时间:2012-02-10
p2world 写道
距离上一章真的好长时间,我也通过这本书从java转向了JavaScript,真的是很棒的一本书讲的很清晰透彻;感谢楼主 var person = [ {name : "jack", age : 26}, {name : "johb", age : 23}, {name : "smith", age : 20}, {name : "abruzzi", age : 26}, {name : "juntao", age : 25}, {name : "jim", age : 24}, {name : "bob", age : 24} ]; $.each(person, function(item){ this.name = this.name.toUpperCase(); });
var person = [ {name : "jack", age : 26}, {name : "johb", age : 23}, {name : "smith", age : 20}, {name : "abruzzi", age : 26}, {name : "juntao", age : 25}, {name : "jim", age : 24}, {name : "bob", age : 24} ]; $.map(person, function(item){ return item.name; }); 结果得到名字组成的数组:
不应该这样理解吧:map一般是指对既有集合的更改,并返回一个集合,与map/reduce中的map一样。你的这个map更像是一个抽取。另外,很高兴这个系列能对你有真实的帮助。第十四章已经发布,在icodeit上. |
|
返回顶楼 | |
发表时间:2012-02-10
最后修改:2012-02-10
abruzzi 写道 $(document).ready(function(){ var person = [ {name : "jack", age : 26}, {name : "johb", age : 23}, {name : "smith", age : 20}, {name : "abruzzi", age : 26}, {name : "juntao", age : 25}, {name : "jim", age : 24}, {name : "bob", age : 24} ]; var mapped = $.map(person, function(item){ return item.name = item.name.toUpperCase(); }); console.dir(person);//原始的person列表已被修改 }); 楼主客气了,能有时间、精力为我们后来者提供高品质的学习资料,功德无量~ 为了这本书,我还得继续: jquery官方解释: “ to new array ” jquery官方示例: var arr = [ "a", "b", "c", "d", "e" ]; $("div").text(arr.join(", ")); arr = jQuery.map(arr, function(n, i){ return (n.toUpperCase() + i); }); $("p").text(arr.join(", ")); arr = jQuery.map(arr, function (a) { return a + a; }); $("span").text(arr.join(", ")); map方法主要是为了通过遍历一个对象(数组)生成新数组。就是楼主说的抽取。 重要的是mapped这个值,而不是原来的person对象。如果只是要修改person对象有$.each就足够了,不需要开销更大并且有其他文意的map。 这样其实有点误用。大家一看到map就想到了抽取,而不会想到它居然修改了原始对象。增加了后期调试bug产生几率。 对于是否修改原对象,$.each,$.map都可以做到。 并且个人不推荐使用$.each,应尽量使用for...in 函数在js中的开销是比较大的。 |
|
返回顶楼 | |
发表时间:2012-02-10
p2world 写道 楼主客气了,能有时间、精力为我们后来者提供高品质的学习资料,功德无量~
为了这本书,我还得继续: jquery官方解释: “ to new array ” jquery官方示例: var arr = [ "a", "b", "c", "d", "e" ]; $("div").text(arr.join(", ")); arr = jQuery.map(arr, function(n, i){ return (n.toUpperCase() + i); }); $("p").text(arr.join(", ")); arr = jQuery.map(arr, function (a) { return a + a; }); $("span").text(arr.join(", ")); [quote="abruzzi"] [code="js"]$(document).ready(function(){ var person = [ {name : "jack", age : 26}, {name : "johb", age : 23}, {name : "smith", age : 20}, {name : "abruzzi", age : 26}, {name : "juntao", age : 25}, {name : "jim", age : 24}, {name : "bob", age : 24} ]; var mapped = $.map(person, function(item){ return item.name = item.name.toUpperCase(); }); console.dir(person);//原始的person列表已被修改 }); map方法主要是为了通过遍历一个对象(数组)生成新对象(数组)。就是楼主说的抽取。 重要的是mapped这个值,而不是原来的person对象。如果只是要修改person对象有$.each就足够了,不需要开销更大并且有其他文意的map。 这样其实有点误用。大家一看到map就想到了抽取,而不会想到它居然修改了原始对象。增加了后期调试bug产生几率。 对于是否修改原对象,$.each,$.map都可以做到。 并且个人不推荐使用$.each,应尽量使用for...in 函数在js中的开销是比较大的。 谢谢你的细心,事实上,之前我对map和each这两个的区别理解的并不到位,这两者之间还是有几点差异的: 1. 当需要修改原数组时,使用map,而each常常会对应一个action(使用当前的item作为参数) 2. 两者的原型不同 一般而言,使用$.each是操作jquery包装集的,如果采用for..in可能带来一些代码的凌乱。另外,map应该指的是 映射,而不是抽取,虽然$.map确实可以做到抽取,呵呵。从这个角度来看,$.map的名字确实有点歧义。 |
|
返回顶楼 | |
发表时间:2012-02-10
“凌乱的代码” 确实是啊。我的代码还是很凌乱。js真是太灵活了。还有我对jquery的一点看法:
最好在学会原生js,DOM之前,别用jquery。 可能引起一些不好的后果。jquery还是当成类库来用,最犀利的类库,作为框架它还不是很合适。 比如:判断俩个jquery对象是否是同一个标签 $("#name").is($("#name")); 或者 $("#name")[0]===$("#name")[0]; 千万别: $("#name")===$("#name"); jQuery还是比较难驾驭的。还有一点,jQuery的源码真漂亮 |
|
返回顶楼 | |