jquery对象和DOM对象的任意相互转换

版权声明: https://blog.csdn.net/hemingyang97/article/details/82502657

jquery对象和DOM对象的任意相互转换


什么是jQuery对象? 
jQuery 对象是通过 jQuery 包装DOM 对象后产生的对象。jQuery 对象是 jQuery 独有的,其可以使用 jQuery 里的方法,但是不能使用 DOM 的方法;例如: $("#img").attr("src","test.jpg"); 这里的 $("#img")就是 jQuery 对象。

什么是DOM对象? 

DOM对象就是Javascript 固有的一些对象操作。DOM 对象能使用Javascript 固有的方法,但是不能使用 jQuery 里的方法。例如:document.getElementById("img").src = “test.jpg";这里的document.getElementById("img") 就是DOM 对象。


比如: 
$("#test").html()
意思是指:获取IDtest的元素内的html代码。其中html()jQuery里的方法 
这段代码等同于用DOM实现代码: 

document.getElementById("id").innerHTML;

虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错。比如:$("#test").innerHTMLdocument.getElementById("id").html()之类的写法都是错误的。 
还有一个要注意的是:用#id作为选择符取得的是jQuery对象与document.getElementById("id")得到的DOM对象,这两者并不等价。请参看如下说的两者间的转换。 
既然jQuery有区别但也有联系,那么jQuery对象与DOM对象也可以相互转换。在再两者转换前首先我们给一个约定:如果一个获取的是jQuery对象,那么我们在变量前面加上$,如:var $variab = jQuery对象;如果获取的是DOM对象,则与习惯普通一样:var variab = DOM对象;这么约定只是便于讲解与区别,实际使用中并不规定。 

在讨论jquery对象和DOM对象的相互转换之前,先约定好定义变量的风格如果获取的是jquery对象,那么在变量前面加上$,例如

var $varible = jquery对象;

如果获取的是DOM对象,则定义如下:

var varible = DOM对象;

1.jquery对象转成DOM对象:

jquery对象不能使用DOM中的方法,但如果对jquery对象所提供的方法不熟悉,或者没有jquery想封装的方法,不得不使用DOM对象,即【index】和get[index].

(1)jquery对象是一个数组对象,可以通过【index】的方法得到相应的DOM对象。

jquery的代码如下

<body>

  <p>my</p>

  <p>my</p>

<script src="jquery-2.1.4.min.js"></script>

<script>

  var $cr = $("p");  //jquery对象

  var cr = $cr[1];  //dom对象

  var ct = $cr.get(0)  //第二种转换为DOM对象的方式

  cr.innerHTML = "you"  //检测是否转换成功,可以用DOM方法 输出结果为第二个my改成了you

  ct.innerHTML = 'fuck'  //输出结果第一个my改成了fuck

</script>

</body>

(2).DOM对象转换为jquery对象:

对于一个DOM对象,只需要用$()DOM对象给包装起来,就可以获得一个jquery对象了,方式为$(DOM对象)

jquery代码如下:

<body>

  <p>my</p>

  <p>my</p>

<script src="jquery-2.1.4.min.js"></script>

<script>

  var cr = document.getElementsByTagName("p") //DOM对象

  var $cr = $(cr);   //jquery对象

  $cr.eq(0).("fuck"); //检测是否转换成功,可以用jquery方法 输出结果为第二个my改成了fuck

  $cr.eq(1).html("you"); //输出结果为my改成you

</script>

</body><body>

  <p>my</p>

  <p>my</p>

<script src="jquery-2.1.4.min.js"></script>

<script>

  var cr = document.getElementsByTagName("p") //DOM对象

  var $cr = $(cr);   //jquery对象

  $cr.eq(0).("fuck"); //检测是否转换成功,可以用jquery方法 输出结果为第二个my改成了fuck

  $cr.eq(1).html("you"); //输出结果为my改成you

</script>

</body>

转换后,可以任意使用jquery方法。

 通过以上方法,可以任意的相互转换jquery对象和DOM对象。

最后再次强调,0jquery对象不能使用DOM中的方法,但jquery对象提供了一套更加完善的工具用于操作DOM。

 

猜你喜欢

转载自blog.csdn.net/hemingyang97/article/details/82502657
今日推荐