第一步,jquery中文入门指南,翻译加实例,jquery的起点教程
第二步,下载手册方便查询(jquery 1.41 中文api文档 chm版)
第三步,深刻了解jquery对象和普通dom对象的区别。互相转化见q1
q1,js的写法:document.getelementbyid('save').disabled=true;
在jquery中我是这样写的$(#save).disabled = true; 为什么没效果呢
a,这个是典型的问题,其实因为$(#save)出来的其实是jquery对象,而不是普通dom对象
这是新手常见的问题。
解决方法有2:
1,用jq写法,$(#save).attr(disabled,true);
2,转成dom写法$(#save)[0].disabled=true;
当然,$(#save)[0]也可以写成$(#save).get(0)。他返回的也是dom元素
$(#save).eq(0)得到的还是jq对象
$(dom对象)就能得到一个jq对象。
q2,获取选中的checkbox
a:
获取所有选中的checkbox:
$(input:checkbox:checked)
判断是否一组checkbox都选中了:
if($(input:checkbox:checked).length){}
判断某一个checkbox是否被选中
if($(input:checkbox).is(:checked)){}
q3,我的id里有[]或.之类的符号,怎么办?或者带有命名空间的xml标签带有:怎么办?
a:用\来转义如
$(#id\\[1\\])
q4,在框架页中,如何操作父窗口的对象
a,引用upc的方法
没找到很好的方法
只好用dom方法与jquery方法结合的方式实现了
1.在父窗口中操作 选中iframe中的所有单选钮
$(window.frames[iframe1].document).find(input[type='radio']).attr(checked,true);
2.在iframe中操作 选中父窗口中的所有单选钮
$(window.parent.document).find(input[type='radio']).attr(checked,true);
iframe框架的:
ie7中测试通过 回去你自己试试吧
实现的原理其实很简单 就是用到了$(dom对象)可以转换成jquery对象
==================================================
不过我的方法是
window.parent.jquery(input[name=validate]).val();
这段是来自我博客的自动填写验证码的,有兴趣可分析下我的footer里的那个框架。
其实本质上和upc的方法是一样的。大家可以借鉴参考
q5,解析由ajax加载的xml,和相关乱码问题
a:见之前的帖子:hhttp://bbs.jquery.org.cn/read.php?tid-1673.html
q6,我下了一个插件interface,怎么在最新的jquery里一点都不好用?
a: interface已经被完全重写并且改名为jquery ui,可以在这里找到最新版本:
http://ui.jquery.com/
q7,在ie下动画会闪一下,效果不理想
a,加上dtd定义即可
比如
q8,为什么官方的说
download jquery 1.2.3 (15kb, minified and gzipped),但我下在下来却有
jquery-1.2.3.min.js 52.8 kb
a,显然,他是用了gzip了(一种服务器端压缩技术,自己google)。而不是官网写错了没更新或者是骗人的~
q9,pack,min和原版三个版本什么区别呢?
pack是如果服务器没开启gzip的时候用
min是服务器有开gzip的时候用
原版可以用于平时开发的时候,或者自己分析源码用。
q10,jquery用的是什么压缩软件?
a: dean edwards 写的packer ,现在已经改用tbcompressor(yui compressor) 压缩了。推荐下载一份。
q11,$('a[@href^=mailto]') 这个代码在jquery 1.3里不能用,1.2里可以,为什么?
a: jquery 1.3以后已经不需要再使用那个@符号了,只需要简单的去掉那个@符号就可以正常运作了。
q12,jquery能跨域么?
a: jquery本身就是对于js的封装,浏览器对js有权限设置,js做不到的,jquery也无法做到。但是可以通过 jsonp 的方式跨域。
