绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
jquery学习手记(5)对象
2020-01-07 18:05:21

DOM和DOM元素

DOM是html文件的表现层,它包含了很多DOM元素,宏观上来讲,DOM元素可以被认为是web页面的一个片段。DOM的形式有类型如<div><a>, 或者 <p>,还有许多属性如:srchrefclass 等等。

元素的属性类似于js的object。属性是js和页面交换的途径。

Jquery对象

Jquery对象的优点包括:

兼容性---跨浏览器和浏览器版本。例如:

var target = document.getElementById("target");
target.innerHTML = "<td>Hello <b>World</b>!</td>";

上述的功能是把<tr>元素的内部html保存到target变量中,对大部分情况下,上述语句是奏效的,但对IE浏览器的大部分版本会失败。

通过使用jquery对象封装的targe对象就不会存在这个问题:

// Setting the inner HTML with jQuery
var target = document.getElementById("target"); 
$( target ).html("<td>Hello <b>World</b>!</td>");

 

便利性—示例如下:

原生js如下:

// Inserting a new element after another with the native DOM API
var target = document.getElementById("target");
var newElement = document.createElement("div");
target.parentNode.insertBefore( target.nextSibling, newElement )

 

使用jquery封装对象后:

// Inserting a new element after another with jQuery
var target = document.getElementById("target");
var newElement = document.createElement("div");
$( target ).after( newElement );

通过jquery对象获取DOM元素

示例如下:

步:

// Selecting all 'h1' tags
var headers = $("h1");

第二步:

// Viewing the number of 'h1' tags on the page
var allHeaders = $("h1");
alert( allHeaders.length );

第三步:

// Selecting only the first 'h1' element on the page (in a jQuery object)
var headers = $("h1");
var firstHeader = headers.eq( 0 );

小结:

 

// Selecting only the first 'h1' element on the page
var firstHeaderElem = $("h1").get( 0 );

或者
var firstHeaderElem = $("h1")[ 0 ];

 

DOM对象和jquery对象的比较

Jquery对象比较:

// Creating two jQuery objects for the same element
var logo1 = $("#logo");
var logo2 = $("#logo");
// Comparing jQuery objects
alert( $("#logo") === $("#logo") ); // alerts 'false' 

dom对象比较:

// Comparing DOM elements
var logo1 = $("$logo");
var logo1Elem = logo1.get( 0 );
var logo2 = $("#logo");
var logo2Elem = logo2.get( 0 );
alert( logo1Elem === logo2Elem ); // alerts 'true'

简洁的写法:

// Comparing DOM elements (with more readable variable names)
var $logo1 = $("#logo");
var logo1 = $logo1.get( 0 );
var $logo2 = $("#logo");
var logo2 = $logo2.get( 0 );
alert( logo1 === logo2 ); // alerts 'true'

jquery对象不会自动更新

// Selecting all 'p' elements on the page
var allParagraphs = $("p");

手动更新:

// Updating the selection
allParagraphs = $("p");

小结

Jquery封装了native dom,让开发者可以忽略浏览器兼容性,并且使用更简洁。

可以通过.get()方法或者数组来获取dom对象。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

JAVA玩具小屋
创建时间:2019-08-16 16:54:49
分享程序开发方面的小经验,思考一些比较简单易懂的技术问题
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Yios5092
    栈主

小栈成员

查看更多
  • 栈栈
  • coyan
  • 25minutes
  • ?
戳我,来吐槽~