您的位置:首页 > Web前端 > JQuery

深刻了解jQuery对象和普通DOM对象的区别

2017-08-19 09:21 232 查看
第一步,http://www.k99k.com/jQuery_getting_started.html 

第二步,新手先仔细得全部看一遍jQuery的选择器,很重要!!! 

       (http://shawphy.com/jqueryapi/ 这里是最新文档,有离线版下载) 

第三步,深刻了解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:用\\来转义如<div id="id[1]"></div> 

$("#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框架的:<iframe src="test.html" id="iframe1" width="700" height="300" frameborder="0" scrolling="auto"></iframe> 

IE7中测试通过 回去你自己试试吧 

实现的原理其实很简单 就是用到了$(DOM对象)可以转换成jquery对象 

================================================== 

不过我的方法是 

window.parent.jQuery("input[name=validate]").val("<%=Session("GetCode")%>"); 

这段是来自我博客的自动填写验证码的,有兴趣可分析下我的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定义即可 

比如<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Q8,为什么官方的说 Download jQuery 1.2.3 (15kb, Minified and Gzipped),但我下在下来却有 jquery-1.2.3.min.js   52.8 KB 

A,显然,他是用了Gzip了(一种服务器端压缩技术,自己GO
aacc
OGLE)。而不是官网写错了没更新或者是骗人的~ 

Q9,pack,min和原版三个版本什么区别呢? 

pack是如果服务器没开启gzip的时候用 

min是服务器有开gzip的时候用 

原版可以用于平时开发的时候,或者自己分析源码用。 

Q10,jQuery用的是什么压缩软件? 

A: Dean Edwards 写的Packer http://dean.edwards.name/packer/ 
Q11,$('a[@href^="mailto"]') 这个代码在jQuery 1.3里不能用,1.2里可以,为什么? 

A:  jQuery 1.3以后已经不需要再使用那个@符号了,只需要简单的去掉那个@符号就可以正常运作了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: