前端学习——选择结果为JQuery对象还是DOM对象?

news/2024/7/10 23:11:43 标签: jquery, dom
0.前言
    在学习和使用javascript过程中经常使用JQuery的选择器,但是在获取到选择结果之后经常“犯迷糊”,需要一个DOM对象时或者一个JQuery对象,这样的尴尬经常遇到。为了让自己不再迷糊通过博文总结经验教训,希望自己在总结过程中缓慢提高。
    【相关博文】
    【 前端学习——如何修改<a href="#">url name</a> 使用javascript和JQuery】
    【示例页面】——test-ul.html
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head> 
<!-- <script src="jquery.js"></script> -->
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
</head> 
<body> 
<ul>
<li>Raspberry</li> 
<li>Arduino</li> 
<li>Intel Galileo</li> 
</ul>
</body> 
</html>

1.选择所有的li
    【使用jquery
var $obj = $("li");
console.log($obj);
    【使用javascript】
var obj = document.getElementsByTagName("li");
console.log(obj);
     【主要区别】
    此时$obj为Jquery对象集合,而obj为DOM对象集合。

2.Jquery对象变为DOM对象——[]方法
var obj = $("li")[0];
console.log(obj);                    // <li>Raspberry</li>
console.log(obj.innerHTML);     // Raspberry
    【说明】
    此处obj为DOM对象,可以使用属性innerHTML。如果使用Jquery的html方法那么浏览器将会发出错误警告。

3.Jquery对象变为DOM对象——get方法
var obj = $("li").get(1);
console.log(obj);                    // <li>Arduino</li>
console.log(obj.innerHTML);     // Arduino
    【说明】
    []方式和Jquery的get方法效果相同。

4.使用javascript达到相同效果
var obj = document.getElementsByTagName("li")[2];
console.log(obj);                    // <li>Intel Galileo</li>
console.log(obj.innerHTML);     // Intel Galileo

5.选择子元素时仍为Jquery对象——eq方法
var $obj = $("li").eq(0);
console.log($obj);
console.log($obj.html());           // Raspberry
    【说明】
    使用eq方法获得Jquery对象,那么获得此对象的HTML内容需要使用Jquery的html()方法,而不是javascript的innerHTML属性。

6.使用Jquery遍历所有子节点
$("li").each(function(index,item){
    console.log(item);                  // item为DOM对象
    console.log(item.innerHTML);   // 依次输出 Raspberry Arduino Intel Galileo
});
    【说明】
    each遍历的item为DOM对象而不是Jquery对象。

7.遍历时再变为Jquery对象
$("li").each(function(index,item){
    $item = $(item);                    // 再次变为Jquery对象
    // console.log($item);              
    console.log($item.html());       // 依次输出 Raspberry Arduino Intel Galileo
});
    【说明】
     $item = $(item)再一次变化出JQuery对象,$(item)此时和$(<li>Raspberry<li>)等价,意为选择一个DOM对象并变为JQuery对象。  

8.使用Javascript遍历所有子节点
var objs = document.getElementsByTagName("li");
for(var i=0; i<objs.length; i++) {
    console.log(objs[i]);
    console.log(objs[i].innerHTML);    // 依次输出 Raspberry Arduino Intel Galileo
}

9.总结
    【1】使用Jquery选择器之后可以使用[]和get获得子DOM,也就是说[]和get具有把Jquery对象转换为DOM对象的功能。
    【2】eq方法获得的对象仍为JQuery对象
    【3】each方法遍历时的item为DOM对象
    【4】JQuery对象使用JQuery方法,DOM对象使用DOM方法。


http://www.niftyadmin.cn/n/671091.html

相关文章

speedoffice(PPT)怎么修改字体颜色

我们知道&#xff0c;文档字体默认的都是黑色的&#xff0c;但是有时我们需要设置成其他颜色的&#xff0c;那么怎么修改默认的字体颜色呢&#xff1f;看看小编是怎么操作的吧。 首先&#xff0c;选择需要修改字体颜色的文字 然后选择“主页”菜单栏里面的“字体颜色”并在下拉…

ERPCore实现原理(一)

uTangramFramework.pas Delphi程序的执行是从Application开始的&#xff0c;Application对象本是在Forms&#xff0c; 为了让程序支持这个框架&#xff0c;需要在主程序的项目文件中将Forms 改为uTangramFramework 覆盖原有的Application usesWindows,uTangramFramework,MainFo…

公交查询源码

首发地址&#xff1a;http://www.eoeandroid.com/thread-229366-1-1.html 效果图&#xff1a; 部分代码&#xff1a; Transfer&#xff1a; package com.bus.shenyang.activity;。。。 public class Transfer extends Activity {String[] sumb;BusDb dbfile;private SQLiteData…

前端笔记——如何控制表单控件中的disabled

0.前言本文主要说明如何使能或禁止表单控件。表单控件具有disabled属性&#xff0c;通过设置该属性可以禁止所有的input控件&#xff0c;input的更多属性请参考资料【1】。下面就通过一个简单的例子说明如何设置和读取disabled属性。【示例页面——代码】<!DOCTYPE html>…

java之操作mysql常用方法

一般引用mysql-connector-java这个包。 package DBManager;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashSet; import java.util.Set;imp…

c# 多个RadioButton与DataTable的数据绑定

Control类有一个公共的属性是DataBindings&#xff0c;它可以将控件的属性与其他的数据绑定在一起。我接触到的有将两个控件的数据绑定、将控件的属性与DataTable绑定。以下说说在将DataTable与RadioButton绑定的过程中出现的问题。 界面上有两个RadioButton&#xff0c;rdoA和…

中国人寿(601628)150亿投资37只封基

WWW.CNLIST.COM 时间&#xff1a; 2007/11/05 13:57:00 理财周报 今日机选涨停板一览 查看中国人寿&#xff08;601628&#xff09;的基本资料 查看中国人寿&#xff08;601628&#xff09;的新股发行资料 截至10月底&#xff0c;沪深两市封闭式基金的总净值已经达到25…

免费cad转pdf方法

cad图纸绘制完成后&#xff0c;为了便于其他职能部门查看图纸与图纸流转&#xff0c;通常会将cad图纸输出为pdf格式文件。那么&#xff0c;cad如何转换成pdf格式呢&#xff1f;今天就来分享一个CAD免费转PDF的教程。 首先&#xff0c;我们需要使用这款名的speedpdf的在线转换&…