JQuery Object 和 DOM的区别

HTML DOM 定义了访问和操作HTML文档的标准方法。其中 document 是DOM 树的根对象 ,在浏览器宿主环境中,可以通过JS操作HTML DOM,例如:

document.getElementById("intro").innerHTML;

如果将DOM element alert 出来,其显示为 [object HTMLFormElement]

参考:http://www.w3school.com.cn/htmldom/index.asp

JQuery Object 包含了一个DOM element 的数组, 例如 $('form') 表示当前页面中所有form元素的JQuery object数组。

如果将JQuery Object  alert 出来,其显示为 [object Object]

参考:http://api.jquery.com/Types/#jQuery

JQuery Object, DOM 互转

JQuery Object 转 DOM

如果确定该JQuery Object 只包含一个DOM对象,可以直接获取,例如

var domEle = $('#uniqueId').get(0);

如果是一组DOM对象,可以用each迭代,例如,打印所有checkbox的value代码。

$(':checkbox').each(function(){
console.log("DOM way: "+this.value);
console.log("JQuery way: "+$(this).val());
});

关于console.log(), 我也是今天才知道,在Chrome中,可以用Ctrl+Shift+I 打开调试Javascript 的console, 不仅可以打印log,还可以设置断点debug。 比alert 好用多了,看来还是要多看资料啊。

DOM 转 JQuery Object 就 更简单了, 用$( ) 包住 DOM Object  就可以了, 例如, $(document.getElementById("uniqueId"))

实战

页面上有多个form表单,要求在每个表单里的checkbox按照数据库中已有信息,进行预先勾选。

<html>
<head>
<title> Checkbox demo</title>
</head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("form").each(function(){
console.log("DOM Object" + this);
console.log("JQuery Object" + $(this));
var existingOpts = $(this).find('.existingOpts').val();
console.log("Checked options: "+ existingOpts );
$(this).find(':checkbox').each(function(){
if (existingOpts.indexOf($(this).val()) != -1)
{
$(this).attr('checked','checked');
}
});
});
});
</script> <body>
<form id='1'>
<input type="hidden" name="existingOpts" class='existingOpts' value="apple;orange;"/>
<input type="checkbox" id="mycheckbox" name="test.checkbox" value="apple"> Apple
<input type='checkbox' name='test.checkbox' value='orange'> Orange
</form>
<form id='2'>
<input type="hidden" name="existingOpts" class='existingOpts' value="apple;"/>
<input type='checkbox' name='test.checkbox' value='apple'>Apple
<input type='checkbox' name='test.checkbox' value='orange'>Orange
</form>
</body>
</html>

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. 【大前端之打通账号系统】passport应该如何落地?
  2. Linux学习笔记&lt;六&gt;
  3. SQL Server 错误日志过滤(ERRORLOG)
  4. 根据起止日期构建指定查询条件:第N周(yyyy-MM-dd/yyyy-MM-dd)
  5. .net面试题集锦
  6. QT实现HTTP JSON高效多线程处理服务器
  7. ionic的页面直接的跳转
  8. Rstudio使用记录
  9. 解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future:
  10. Java网络通信
  11. 配置navigation bar外观
  12. 初始化IoC容器(Spring源码阅读)-我们到底能走多远系列(31)
  13. IIS 之 HTTP Error 404.2 – Not Found(ISAPI 和 CGI 限制)
  14. hibernate annotation注解 columnDefinition用法
  15. 斗地主你什么时候才会托管?(.NET中的托管于非托管)
  16. 佛山Uber优步司机奖励政策(1月25日~1月31日)
  17. [Swift]LeetCode234. 回文链表 | Palindrome Linked List
  18. python中的闭包和装饰器
  19. edit this cookie chrome插件 (HttpAnalyzerStdV3 获取Cookie 后,再用edit this cookie添加cookie)
  20. Qt_自定义菜单

热门文章

  1. LeetCode() Min Stack 不知道哪里不对,留待。
  2. 一步步构建自己的AngularJS(1)——项目初始化
  3. 聊一下JS中的作用域scope和闭包closure
  4. 【1】第一次电话面试---上海EMC
  5. Android学习笔记(二)
  6. 动画_ _ Android应用开发之所有动画使用详解
  7. PHP 开发的 API 多版本管理实践
  8. Web Services 中XML、SOAP和WSDL的一些必要知识
  9. 使用jquery获取url以及jquery获取url参数的方法
  10. 如何将arcgis的mxd文档存储为相对路径