javascript中html字符串转化为jquery dom对象的方法


Posted in Javascript onAugust 27, 2015

原html字符串如下:

var text="<div id='overLay' style='width:50px;height:60px;background:url(imgs/back.png) left top no-repeat; position: absolute;'>"
        + "<img style='margin-left:4px;margin-top: 3px;' src='ima.png' width='43px' height='43px'/>"
        + "</div>";

 

1、下面使用Jquery库将text字符串变量转为Jquery对象。

Jquery代码如下:

alert($(text).html());

其中$(text)就text字符串转为了一个Jquery对象,最后将该Jquery对象的html()将html内容以字符串的形式输出,结果如下:

<img style='margin-left:4px;margin-top: 3px;' src='ima.png' width='43px' height='43px'/>

说明了,$(text)Jquery对象代表的是最外层的html元素div。

2、将Jquery对象和DOM对象之间互转。

代码如下:

var element= $(text).get(0) //element就是一个dom对象
var jqueryobj=$(element);//jqueryobj就是一个Jquery对象。

注意:DOM对象和Jquery对象区别

在我理解,Jquery对象和DOM对象都是封装的html元素,可以对html元素节点进行操作,方便编程,但是他们之间的方法有些是不能共用的,如Jquery对象的html()方法,DOM对象就使用不了;而DOM对象的GetElementById(),Jquery对象也不能使用。所以在必须要的时候可以进行相互转换。

3、使用js代码将text字符串变量转为DOM对象。

js代码如下:

/*字符串转dom对象*/
function loadXMLString(txt) 
{
  try //Internet Explorer
   {
     xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
     xmlDoc.async="false";
     xmlDoc.loadXML(txt);
     //alert('IE');
     return(xmlDoc); 
   }
  catch(e)
   {
     try //Firefox, Mozilla, Opera, etc.
      {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(txt,"text/xml");
       //alert('FMO');
        return(xmlDoc);
      }
     catch(e) {alert(e.message)}
   }
  return(null);
}

其中js代码将text字符串转为DOM对象与浏览器有关,所以。。。。。。分开写。

这样就实现了html字符串向Jquery对象和DOM对象的转换。

jQuery对象与dom对象相互转换方法介绍

刚开始学习jQuery,可能一时会分不清楚哪些是jQuery对象,哪些是DOM对象。至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换。

什么是jQuery对象?

---就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法。

比如:

$("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法

这段代码等同于用DOM实现代码:

document.getElementById("id").innerHTML;
虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错。比如:$("#test").innerHTML、document.getElementById("id").html()之类的写法都是错误的。

还有一个要注意的是:用#id作为选择符取得的是jQuery对象与document.getElementById("id")得到的DOM对象,这两者并不等价。请参看如下说的两者间的转换。

既然jQuery有区别但也有联系,那么jQuery对象与DOM对象也可以相互转换。在再两者转换前首先我们给一个约定:如果一个获取的是 jQuery对象,那么我们在变量前面加上$,如:var $variab = jQuery对象;如果获取的是DOM对象,则与习惯普通一样:var variab = DOM对象;这么约定只是便于讲解与区别,实际使用中并不规定。

jQuery对象转成DOM对象:

两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);

(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。

如:

var $v =$("#v") ; //jQuery对象
var v=$v[0]; //DOM对象
alert(v.checked) //检测这个checkbox是否被选中

(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象

如:

var $v=$("#v"); //jQuery对象
var v=$v.get(0); //DOM对象
alert(v.checked) //检测这个checkbox是否被选中

DOM对象转成jQuery对象:

对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象)

如:

var v=document.getElementById("v"); //DOM对象
var $v=$(v); //jQuery对象

转换后,就可以任意使用jQuery的方法了。

通过以上方法,可以任意的相互转换jQuery对象和DOM对象。需要再强调注意的是:DOM对象才能使用DOM中的方法,jQuery对象是不可以用DOM中的方法。

Javascript 相关文章推荐
JavaScript 的继承
Oct 01 Javascript
jquery ajax,ashx,json的用法总结
Feb 12 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
Dec 23 Javascript
jQuery+Ajax实现限制查询间隔的方法
Jun 07 Javascript
获取jqGrid中选择的行的数据
Nov 30 Javascript
ES6中的rest参数与扩展运算符详解
Jul 18 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
Nov 30 Javascript
浅谈JavaScript 代码简洁之道
Jan 09 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
vue 更改连接后台的api示例
Nov 11 Javascript
Vue+Vuex实现自动登录的知识点详解
Mar 04 Javascript
javascript 动态修改css样式方法汇总(四种方法)
Aug 27 #Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
Aug 27 #Javascript
javascript引用类型之时间Date和数组Array
Aug 27 #Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
Aug 27 #Javascript
jQuery手机拨号界面特效代码分享
Aug 27 #Javascript
JS实现自动切换文字的导航效果代码
Aug 27 #Javascript
javascript实现自动输出文本(打字特效)
Aug 27 #Javascript
You might like
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
js的with语句使用方法
2007/09/21 Javascript
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
2019/01/21 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
python 实现手机自动拨打电话的方法(通话压力测试)
2019/08/08 Python
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
经贸日语毕业生自荐信
2013/11/03 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
会议室管理制度范本
2015/08/06 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang