jQuery如何将选中的对象转化为原始的DOM对象


Posted in Javascript onJune 09, 2014

在jQuery中,在一个页面上选择元素返回的集合是jQuery对象而不是原始的DOM对象. 所以只能运行jQuery方法. 如果要在选择集上运行DOM方法和属性,该集合必须转化为DOM对象

比如你不可以这样使用:

$('div').innerHTML = "hello world";

因为innerHTML是 DOM的属性而不是jQuery对象的属性.如果确实想这么做.那么就需要将jQuery对象转化为DOM对象.方法有两种.

①jQuery提供一种核心方法get(),所以上面的可以写成$('div').get().innerHTML = "hello world";

当然这里对应的是页面中只有一个div的情况.如果有多个div.

那么这种方法不好使,你需要修改一下代码,通过传递给get(index) 这样的索引值进行选择.

$("div").get(0).innerHTML = "hello world";

当然,你可以使用jQuery自带的$.each循环进行全部的赋值操作.

$div1 = $("div").get();

<span style="font-size:18px;">$.each($div1, function(index, val) { 
val.innerHTML = 'lc '+ index; 
});</span>

②我们可以使用[ ] 来使用数组的形式获取内容.

比如 $('div')[0].innerHTML = "hello world";

下面我们来看一个完整的例子吧.

<span style="font-size:18px;"><html> 
<head> 
<title></title> 
</head> 
<body> 
<h3>Books</h3> 
<ol> 
<li>Head First jQuery</li> 
<li>Data Structrue and Algorithm with Javascript</li> 
<li>Nodejs up and running</li> 
<li>Node js with PHP expert</li> 
<li>Sharp jQuery</li> 
<li>Professional Javascript</li> 
</ol> 
<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
var lis = $('ol li').get().reverse(); 
$ol = $('ol'); 
$ol1 = $ol.clone(false, false); 
$ol1.empty(); 
$.each(lis, function(index, val) { 
$ol1.append('<li>'+val.innerHTML+'</li>'); 
}); 
$ol1.appendTo('body'); 
}); 
</script> 
</body> 
</html> 
</span>

下面我补充一下将DOM对象转化为jQuery对象的过程.

这里我使用的是这个例子.

<html> 
<head> 
<title></title> 
<style type="text/css"> 
.clicked{ 
width:100px; 
height: 40px; 
border: 1px solid #cba; 
border-radius: 3px; 
} 
</style> 
</head> 
<body> 
<a href="#" id="cli" onclick="click(this)">Click Me</a> 
<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
function click(it){ 
$(it).addClass('clicked'); 
console.log('yes'); 
} 
</script> 
</body> 
</html>

这里就是用到了我们的DOM对象转化为jQuery对象的过程.

注意看: 其实it指的是我们的a这个链接对象.是普通的DOM对象,我们在onclick 事件中this传入.

然后我们用$()对DOM对象进行了封装,然后才可以使用addClass函数.

Javascript 相关文章推荐
JavaScript 替换Html标签实现代码
Oct 14 Javascript
JavaScript中的时间处理小结
Feb 24 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
vue中的event bus非父子组件通信解析
Oct 27 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
vue中轮训器的使用
Jan 27 Javascript
如何优雅地在Node应用中进行错误异常处理
Nov 25 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
Jul 19 Javascript
jQuery实现放大镜案例
Oct 19 jQuery
js中延迟加载和预加载的具体使用
Jan 14 Javascript
javascript 处理null及null值示例
Jun 09 #Javascript
网页实时显示服务器时间和javscript自运行时钟
Jun 09 #Javascript
jQuery setTimeout传递字符串参数报错的解决方法
Jun 09 #Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 #Javascript
Node.js(安装,启动,测试)
Jun 09 #Javascript
关于JS数组追加数组采用push.apply的问题
Jun 09 #Javascript
javascript浏览器兼容教程之事件处理
Jun 09 #Javascript
You might like
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
PHP 文件系统详解
2012/09/13 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
javascript 写类方式之六
2009/07/05 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
layDate插件设置开始和结束时间
2018/11/15 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python实现图片转字符画的示例
2017/08/22 Python
Python科学画图代码分享
2017/11/29 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
Python语法分析之字符串格式化
2019/06/13 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
Tensorflow累加的实现案例
2020/02/05 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
五年级语文教学反思
2014/01/30 职场文书
机关保密承诺书
2014/06/03 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
反邪教教育心得体会
2016/01/15 职场文书
总结Python常用的魔法方法
2021/05/25 Python
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
选购到合适的激光打印机
2022/04/21 数码科技