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 相关文章推荐
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
Feb 22 Javascript
自己的js工具_Form 封装
Aug 21 Javascript
JavaScript中实现依赖注入的思路分享
Jan 15 Javascript
jQueryMobile之Helloworld与页面切换的方法
Feb 04 Javascript
JS显示日历和天气的方法
Mar 01 Javascript
JS对象深度克隆实例分析
Mar 16 Javascript
vue 子组件向父组件传值方法
Feb 26 Javascript
Layer弹出层动态获取数据的方法
Aug 20 Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
vue中实现Monaco Editor自定义提示功能
Jul 05 Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
php实现源代码加密的方法
2015/07/11 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
浅谈layui 数据表格前后台传值的问题
2019/09/12 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
python实现kMeans算法
2017/12/21 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
python机器学习库xgboost的使用
2020/01/20 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
九州传奇上机题
2014/07/10 面试题
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
地质灾害防治方案
2014/05/14 职场文书
大学生求职信
2014/06/17 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis