最近在开发百度地图相关的一个应用,需要从硬编码的html
字符串中提取自己想要的元素以及属性信息。但是在js
中或者jQuery
中操作元素节点以及属性都是使用DOM
对象或者jquery
对象。下面将介绍如何把html
字符串转为Jquery
对象或者DOM
对象。
原html
字符串如下:
var text=""
+ ""
+ "";
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
中的方法。