Search
Search
#1. jQuery 選取元素Selectors - Fooish 程式技術
tag selector. 在jQuery 中 $('a'); // 取得頁面中所有的<a> 標籤元素. 在JavaScript DOM 中 document.getElementsByTagName('a');. 在CSS 中
#2. jQuery - 获得内容和属性 - w3school 在线教程
jQuery DOM 操作. jQuery 中非常重要的部分,就是操作DOM 的能力。 jQuery 提供一系列与DOM 相关的方法,这使访问和操作元素和属性变得很容易。
#3. 從jQuery物件取得原本的Javascript DOM 元素 - 菜鳥工程師肉豬
從jQuery物件取得原本的Javascript DOM 元素. 從jQuery物件中取得原本的Javascript DOM元素使用以下 $("div").get(); // or $("div")[0];.
#4. jQuery 获取DOM节点的两种方式- 美好的明天 - 博客园
jQuery 中包裹后的DOM对象实际上是一个数组,要获得纯粹的DOM对象可以有两种方式: 1、使用数组索引方式访问,例如: var dom = $(dom)[0]; 如: $("#
#5. jQuery 取得Dom 元素座標- Offset() 與Position() - zwh.zone
jQuery 取得Dom 元素座標- Offset() 與Position(). Mar 14, 2017 2 min read jQuery. 當你是透過你所收尋的關鍵字找到這篇文章的同時,恭喜~你已經找到了答案的關鍵!
#6. [轉] 學學用原生JS來操作DOM吧 - NotFalse 技術客-
原本大家習慣使用第三方函示庫(例如jQuery)包裝的DOM 操作方法, ... 我們有很方便的querySelector() 和querySelectorAll() 方式來取得DOM。
jQuery 最基本的中心思想就是以「選取DOM 元素為開始」,接著就是對它們作一些事。 ... $(".content"); // 取得class name為content的所有元素.
#8. [jQuery] 筆記(五) – 選擇器(selector) - iT 邦幫忙
jquery 提供selector 的機制,類似CSS 抓取DOM 元素的方式,針對網頁元素進行操控, ... 取得其class 屬性值為class1 的input元素 ... 取得div父元素其下所有的p子元素
#9. jQuery 取得Dom 元素座標- Offset() 與Position() - 一群棒子
jQuery 取得Dom 元素座標- Offset() 與Position() ... 你需要藉由Dom 元素的座標來判斷說你指定的Dom 元素存在於畫面的哪個位置,來完成你開發上的 ...
因此須知道當下操縱的是DOM 物件,還是jQuery 物件,這樣才能正確使用各自物件的方法、屬性。 text ()、html () 取得與設定元素內容. text () 與html () ...
#11. jQuery 获取内容和属性 - 菜鸟教程
jQuery - 获取内容和属性jQuery 拥有可操作HTML 元素和属性的强大方法。 jQuery DOM 操作jQuery 中非常重要的部分,就是操作DOM 的能力。 jQuery 提供一系列与DOM 相关 ...
#12. js與jquery獲取父級元素,子級元素,兄弟元素的實現方法 - 程式前沿
JS的方法會比JQUERY麻煩很多,主要則是因為FF瀏覽器,FF瀏覽器會把你的換行也當最DOM元素. 原生的JS獲取ID為test的元素下的子元素。可以用:.
#13. each() : 遍历一个jQuery对象,为每个匹配元素执行一个函数。
.each() 方法用来让DOM循环结构更简单更不易出错。它会迭代jQuery对象中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。
#14. 以仿jQuery 的自訂函數簡化網頁DOM 元件之存取 - 小狐狸事務所
前端網頁設計師必學的jQuery 是DOM 操作的瑞士刀, 它的$() 函數使繁雜的DOM 操作變簡單, 若元素的id 屬性值為myid, 則用$("#myid") 即可取得此元素 ...
#15. Jquery-取得父元素
取得 上一層第一個符合的父元素,等同於parents().eq(0) 下載線上範例 將會以下列的HTML結構,說明搭配上述三種不同的Jquery方法取得父元素li及ul時的差異點。 Jquery ...
#16. jQuery 取得Dom 元素座標 | jquery scroll位置取得 - 旅遊日本 ...
jquery scroll位置取得,大家都在找解答。 jQuery 取得Dom 元素座標– Offset() 與Position() ... 你需要藉由Dom 元素的座標來判斷說你指定的Dom 元素存在於畫面的哪個 ...
#17. 取得dom dataset · JavaScript 學習筆記 - KeJyun
使用jQuery 取得data 屬性資料狀況. JavaScript 的原生dataset 資料與jQuery 的data 資料沒有互通 // 取得資料 var field_id = $('#link_id').data('field-id'); ...
#18. [jQuery][轉] jQuery物件轉DOM物件的方法@ 碎碎念 - 隨意窩
轉自 http://webdesign.kerthis.com/jquery/jquery_manipulation -- jQuery 物件→ 實際HTML DOM 元素正如上述,取得的元素是一個jQuery 物件,因此如果我們作下面這樣 ...
#19. [jQuery]獲取iframe內的DOM物件 - 機車物語- 痞客邦
目標:如果現在有a.html和b.html兩個網頁。b.html是以iframe的形式顯示在a.html中。我們要在a.html中,使用javascript取得b.html中的DOM元素。 a.
#20. 4.8 取得元素的位置座標- jQuery
.position() 取得相對於父元素(往外層找到第一個有設定position 為非static 的元素)水平方向與垂直方向的距離。 如下示意圖(假設最外圍的黑框是瀏覽器):.
#21. jQuery 物件與原生DOM 物件相互轉換 - IT人
區別jQuery 選擇器得到的jQuery物件和原生JS 中的document.getElementById() document.querySelector取得的DOM物件是兩種不同型別,兩者是不等價的。
#22. 都2017 年了,學學用原生JS 來操作DOM 吧
... 原本大家習慣使用第三方函示庫(例如jQuery)包裝的DOM 操作方法,現在都能夠使用原生的JavaScript 來達成了。 查詢和取得DOM 我們有很方便 ...
#23. [jQuery] 取得滑鼠位置、元素位置與區塊內的相對位置
在jQuery 裡可以使用e.pageX, e.pageY 和offset() 來取得頁面上的絕對位置與相對位置。
#24. Jquery 選擇指定位置的指定樣式及參考文件 - ITREAD01.COM
需求說明,需要取得樣式“XXX”的第一個位置,和最後一個位置用$(".xxx") ... JQuery物件不能呼叫DOM物件的屬性和方法,同樣DOM物件也不能呼叫JQuery ...
#25. 如用用jquery取得dom元素的第一个孩子? - 百度知道
getElementById("hobby_div");varfirstChild=obj.childs[0],可以用jquery取得dom元素的第一个孩子吗?... 如果是javascript可以这样写: var obj = document.
#26. jQuery 选择器与DOM 操作
var div = $('#abc'); // jQuery 对象var divDom = div.get(0); // 假设存在div,获取第1 个DOM 元素var another = $(divDom); // 重新把DOM 包装为jQuery 对象 ...
#27. 第5 章文件物件模型 - JavaScript
在DOM tree 裡存取資料包含2 步驟:. 1. 選擇HTML 元素. 2. 存取該元素的資料. ∗ 利用jQuery 選擇HTML 元素. → 利用選擇器(Selector),與CSS 選擇器格式相同.
#28. jQuery 與Ajax - Saffran's blog
如何用jQuery 來操作DOM ... 如果 .val() 裡面沒有傳參數,就是GET(取得值). 例如:用 $('.todo-input').val() 就可以取得 .todo-input 的值 ...
#29. 如何使用jQuery获取元素的ID? - 问答- 云+社区 - 腾讯云
如何使用jQuery获取元素的ID? ... 在jQuery中DOM选择器的替代方法是 ... 在这个本机元素上,你可以调用id或任何其他原生DOM属性或函数。
#30. 原生js 获取dom 元素querySelector() 替代getElementById()
其获取元素的方式跟jquery 很像,但取到的元素并不一样,jquery 取得的是jquery 元素,而 querySelector() 获取的是dom 对象。
#31. jQuery 存取元素內容文字的方法 - 康廷數位
jQuery 提供了text() 方法,它回傳元素的文字節點,例如以下的配置:. <p id="msg">HTML5 從零開始</p>. 現在調用text() 方法即可取得其中的 ...
#32. jQuery中的DOM操作(二) - 程序員學院
jQuery 中的DOM操作(二),1 屬性操作在jquery中,用attr 方法來獲取和設定 ... 1.children()方法用於取得匹配元素的子元素集合(不考慮其他後代元素).
#33. js或jquery如何获取父级、子级、兄弟元素(包括祖级、孙级等)
原生javascript方法:var a = document.getElementById(dom); d...
#34. 基礎訓練--(05) jQuery & CSS selector @ 台灣的Web工程師
需要上課的人員: 題目1: HTML的DOM如下下方的空格應填入什麼值才能取得上方的DOM。 用id取得DOM→$(" "),用class取得DOM→$(&quo.
#35. [程式][JQuery] 取得該元素的及他的子元素的HTML CODE ...
我們一般來說,我們都知道要透過Jquery取得元素的內容(子元素)的時候。 ... 原生JS DOM里有一個内置屬性outerHTML (看清大小寫哦,JS是區分大小寫 ...
#36. Javascript 跟JQuery 傻傻分不清楚| 楓葉筆記本 - 點部落
... 原因就在於Javascript DOM 跟JQuery 分不清楚, 當同事找我求救時, ... 這個方法可以呼叫 demo.value; // 正確,要利用.value 取得input 值.
#37. 1. jQuery 與Ajax 互動式網頁應用- Rails 實戰聖經
瀏覽器提供了DOM API 讓開發者可以操縱這些結構,透過jQuery 我們可以很方便地從HTML 取得要操縱的HTML 元素,並在DOM 裡面進行插入、修改、刪除元素,這樣瀏覽器的 ...
#38. JQuery获取DOM元素的get方法 - 编程宝库
JQuery 获取DOM元素的get方法:在JavaScript中,使用JQuery框架的最大原因是它可以轻松的 ... 获取jQuery对象中拥有指定索引的DOM元素,取得其中一个匹配的元素。
#39. jQuery教學- 常用函式 - 小殘的程式光廊
依據參數產生或取得jQuery物件. $(selector). 依據selector規則取得Elements,例如 $('#my-element'); $(element). 將原生的DOM物件轉為jQuery物件, ...
#40. 邊做邊學jQuery系列04 - 神奇的jQuery Selector
傳統DOM API提供我們幾種找到特定元素的方法,如: ... 由於jQuery Selector傳回的結果常是一群符合元素jQuery物件所組成的群組,還有有幾個取得群組特定元素的函數:.
#41. JQuery获取DOM元素_一只博客的技术博客 - 51CTO博客
JQuery 中的get方法. get() 返回值:Array<Element>. 取得所有匹配的DOM 元素集合。 这是取得所有匹配元素的一种向后兼容的方式(不同于jQuery对象,而 ...
#42. JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法
(1)获取子节点时,可以通过node.getElementsByTagName()来回避这个问题。但是getElementsByTagName对复杂的DOM结构遍历明显不如用childNodes,因为 ...
#43. Jquery基礎之DOM操作
程式碼返回$li3也是一個由DOM物件包裝成JQuery物件,把新建的屬性節點新增 ... children()方法用於取得匹配元素的子元素集合,只匹配子元素不考慮任何 ...
#44. 036-jQuery DOM 元素方法_其它 - 程式人生
技術標籤:jQuery 1. get()方法1.1. 語法$(selector).get(index) 1.2. 引數1.3. jQuery中的get()函式是取得當前頁面中所有匹配的DOM元素集合。
#45. dom與jquery互相轉換 - w3c學習教程
dom 與jquery互相轉換,1 取得標籤中的value屬性的內容dom物件jquery物件2var inputelement document getelemen.
#46. Javascript & JQuery選擇/設置DOM元素. 鑒於我經常搞錯混用
“Javascript & JQuery選擇/設置DOM元素” is published by WICOgohome. ... 將B表的新增頁面導入欄位中->修改為把新增表單區塊隱藏; 取得欄位值後展示成table ...
#47. 使用JavaScript 或jQuery 取得網頁捲動後的高度
DOCTYPE html> 正確取得document.documentElement.scrollTop 滾動元素捲動後的高度,使用判斷方式以符合不同之IE, Firefox, Chrome, Safari, Opera 瀏覽器。
#48. jQueryでの「id」セレクタの取得方法|指定方法やDOM操作も ...
jQuery ではセレクタを利用したDOM操作が基本になります。今回は「id」セレクタの指定の方法やオブジェクトの取得、DOM操作などを解説します。
#49. DOM · 105年跨平台網頁商城開發班-jQuery
Document Object Model(DOM). 什麼是DOM? DOM是一種跨平台並且和程式語言無關的應用程式介面(Application Programming Interface, API)用於HTML,DOM是一種樹狀結構, ...
#50. jQuery物件與DOM物件之間的轉換方法 - w3c菜鳥教程
還有一個要注意的是:用#id作為選擇符取得的是jquery物件與document.getelementbyid("id")得到的dom物件,這兩者並不等價。請參看如下說的兩者間的 ...
#51. JavaScript 基本類使用onClick 及this取得id - 程式開發學習之路
JavaScript 基本類使用onClick 及this取得id 關鍵詞(keyword): onClick 、this、id 基本用法: <script type=&q.
#52. 用jQuery 取得隱藏元素的真正長寬
舊版的jQuery 在擷取隱藏的DOM元素的長寬時常常會出問題. 當目標元素或是它的父元素的css property 'display' 設成'none' 時. $('#someElement').width(); 傳回的往往 ...
#53. Javascript 取得點選button 上層element 的資訊
MSDN Forum 有網友發問「請問jQuery 如何取得點選的button 的相關 ... HTML DOM parentElement Property · DOM Element getAttribute() Method.
#54. [Angular] 使用@ViewChild 取得操作DOM 屬性 - TPIsoftware
... 對指定的DOM 物件完成繫結,只要變更component.ts 的資料內容,DOM 的值就會跟著變動,不用像使用jquery 需要先一個一個取得指定物件在對其操作, ...
#55. jQuery学习笔记—— .html(),.text()和.val()的使用_ 教程 - W3cplus
本节内容主要介绍的是如何使用jQuery中的.html(),.text()和.val()三种方法,用于读取,修改元素的html结构,元素的文本内容,以及表单元素的value值的 ...
#56. jQuery 选择器与简单DOM操作
之所以选择jquery进行dom操作确实是因为它的选择器非常强大,相比于传统的客户端js里 ... $('#icon').attr('src') // 取得id为icon的标签的src属性值
#57. jQuery 操作DOM 並scrollTop 跳轉至指定位置 - GrowingDNA ...
$(function(){ var hash = $(location).attr('hash'); // 使用location function 來取得#xxxx var tabid_t = hash.split('&'); // 使用split function 來 ...
#58. javascript中html字符串转化为jquery dom对象的方法 - 脚本之家
还有一个要注意的是:用#id作为选择符取得的是jQuery对象与document.getElementById("id")得到的DOM对象,这两者并不等价。请参看如下说的两者间的 ...
#59. jQuery 學習筆記(6) — 操作DOM 物件- ott板 - Disp BBS
直接取得DOM 中元素的原始API 就這三個,如果你想任意地取得頁面中的物件,光靠這三個API 是很辛苦的,所以jQuery 能支援直接用CSS selector 的方式來 ...
#60. [jQ]如何使用jQuery 來啟用/停用元素?
如果各位熟悉HTML 屬性的話,那麼應該有看過disabled 屬性。只要在表單元素(Button、Input、Optgroup、Option、Select 及TextArea)的屬性中 ...
#61. php – 類別simplehtmldom ,用來取得html dom | jsnWork
php – 類別simplehtmldom ,用來取得html dom ... jQuery - 使用jquery.appear 取代jquery.lazyload 非真實的延遲加載. jquery.lazyload 並未真正的 ...
#62. jQuery 對下拉選單DropDownList 的操作- 1 - mrkt 的程式學習筆記
第一種寫法就是先將下拉選單轉為DOM 物件再用javascript 的操作方法把 ... 第2 點的操作,先取得指定index 位置的option 之後,再使用jQuery 的after ...
#63. jquery - 想不到吧!使用jquery.dom.to.image.js將html轉為圖片
Aka程式狗使用jquery.dom.to.images.js教你使用jquery將html轉為圖片,圖片類型可為jpg、png、bmp等多種類型,操作相當直覺化。
#64. jQuery獲取循環出來的DOM節點
children()方法 獲取匹配元素的全部子元素的個數。 該方法用於取得匹配元素的子元素集合。根據DOM樹的結構,能夠知道各個元素之間的關係以及它們子 ...
#65. jQuery 方法大全@ 阿水資訊站 - 痞客邦
load( url, [data], [callback] ) 裝入一個遠程HTML內容到一個DOM結點。 ... 取得所有div元素和其中的p元素,添加border類屬性。 取得所有div元素中 ...
#66. JavaScript如何获取dom元素querySelector()替代 ... - 亿速云
其获取元素的方式跟jquery 很像,但取到的元素并不一样,jquery 取得的是jquery 元素,而 querySelector() 获取的是dom 对象。
#67. JavaScript - W3C DOM簡介 - KingKong Bruce記事
... 文字節點(HTML的內容) → Text Node → HTML/CSS/Javascript/jQuery ... W3C DOM物件集合. W3C DOM物件集合可以取得下一層子節點和節點的屬性。
#68. jquery Dom 操作- 程式設計 - 青舍數位學園
取得 <div><span>test</span></div> 中的html內容. 得到<span>test</span>. 改變元素內容. $('div').html('test'). 把<div></div> 的內容換成<div>test</div>.
#69. jQuery 介紹(一)選取器 - 六藝草堂
$("form").children(); //取得下一層的子元素物件 ... 取得之前或之後的dom物件: ... From:《網頁設計,愛上jQuery》ISBN:978-986-6850-844.
#70. JQuery中html()與text()方法的區別 - 每日頭條
無參 html() :取得第一個匹配元素的html內容。 ... DOM是所有前端開發每天打交道的東西,但是隨著jQuery等庫的出現,大大簡化了DOM操作,導致大家慢 ...
#71. jQuery 的data() 并不会改变DOM 值 - 千一网络
data() 赋值绝不影响DOM,但是反过来则需要看情况。 ... 使用data() 方法、或者虽然使用了data() 方法但没有取到值(data- 属性不存在,导致取得值 ...
#72. jQuery - 監聽DOM新增/移除的元素 - SunTargets
jQuery – 監聽DOM新增/移除的元素. Posted by elvisyip on 2019-11-29 2019-11-29 Code備忘錄 · Home Code備忘錄 jQuery – 監聽DOM新增/移除的元素.
#73. 脱jQuery!DOM要素取得コードの素のJavaScriptへの書き換え
脱jQueryのためのDOM要素の取得コードをjQueryから素のJavaScriptへの書き換え例をまとめてみ ... jQuery $('#id > div.class') // id指定 document.
#74. jQuery知识总结之DOM操作 - 掘金
本篇文章主要总结一下jQuery中DOM节点的创建、插入、删除与替换 ... 取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合.
#75. jQuery-节点操作 - 简书
DOM 中有一个非常重要的功能,就是节点模型,也就是DOM 中的“M”。 ... jQuery-节点操作 ... 用来取得第一个匹配元素的html内容
#76. JQuery遍历DOM节点-- 简明现代魔法图书馆
该方法用于取得匹配元素的子元素集合。根据DOM树的结构,可以知道各个元素之间的关系以及它们子节点的个数。 下面使用children()方法来获取匹配元素的 ...
#77. jQuery Get Content and Attributes - W3Schools
The DOM defines a standard for accessing HTML and XML documents: "The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows ...
#78. jQuery DOM操作あれこれ - Qiita
DOM の取得. まずはここから. 『$』関数の第1引数にセレクタ文字列を指定; 取得されるのはjQueryオブジェクト. jQueryオブジェクトとは .
#79. [心得] 都2017年了學學用原生JS來操作DOM吧- 看板Ajax
... ://www.sitepoint.com/dom-manipulation-vanilla-javascript-no-jquery/ ... 和取得DOM】 我們有很方便的querySelector() 和querySelectorAll() ...
#80. JQuery获取DOM元素 - 阿里云开发者社区
如果你想要直接操作DOM 对象而不是jQuery 对象,这个函数非常有用。 JQuery中的get(index)方法. get(index) 返回值:Element. 取得其中一个匹配的元素。 num表示取得第 ...
#81. 該如何取得這種型式的DOM 物件? - MSDN
請教各位先進. 要如果讓Javascript(or jQuery) 取得標籤名稱帶有冒號的物件, 例如像是Facebook 的登入按鍵. <fb:login-button></fb:login-button>.
#82. jQuery中取得dom的值的三种方法之区别 - Linux公社
在网页中经常要去取得dom的值,常用的有val(),text(),html(),但他们之间是有区别的。
#83. 利用jQuery 將DOM 元素聚焦focus() 的六個版本分享
jQuery Events/focus: This causes all of the functions that have been bound to. 第二種:轉換成DOM 去執行focus() 函式.
#84. jQuery.data() 用法與使用情境 - 一個PG的工作筆記
描述:對一個特定的DOM元素附加任何類型的資料(字串,陣列或物件皆可),或對特定元素取得已設定過jQuery.data()的資料. 用法:.
#85. JavaScript DOM 操作 - 灰色後門
getElementById() 可以從整份DOCUMENT中取得有指定id的element ... 兩個method的實作讓你可以像使用JQuery一樣,使用各式各樣的選取器取得單一element ...
#86. jquery對象和dom的區別 - 台部落
//$ah爲jquery對象 var $ah = $("#ah"); //$ah[0] 取得dom對象 //或者$ah.get(0)取得dom對象 alert($ah[0].href); var da = document.
#87. jQuery判断当前元素是第几个元素&获取第N个元素 - 知道91博客
jQuery 选择器是非常方便的,使用jQuery能够为我们选择元素带来很多的方便,但是我们经常会遇到这样的情况就是我们需要判断当前元素的属于相同类或者 ...
#88. Fetch API - MDN Web Docs
desktop desktop desktop Chrome Edge Firefox ChromeFull support42 EdgeFull support14 FirefoxFull support39 Support for blob: and... ChromeFull support48 EdgeFull support79 FirefoxCompatibility u...
#89. Overview | Maps JavaScript API | Google Developers
Overview · Audience · Hello, World · Declaring your application as HTML5 · Loading the Maps JavaScript API · Map DOM Elements · Map Options · The Map Object.
#90. jquery dom是什麼 - tw511教學網
jquery dom 是指檔案物件模型即Document Object Model,是W3C國際組織的一套Web標準,DOM可被JavaScript用來讀取、改變HTML、XHTML以及XML檔案。
#91. JavaScript+jQuery +Node.js網頁設計與物聯網應用開發教本(電子書)
取得 DOM 元素數 jQuery 物件可以使用 length 屬性取得包裝的 DOM 元素數,如下所示: var length; length = $("li:contains('ASP')").length;上述程式碼使用 length ...
#92. JavaScript+jQuery Mobile+Node.js跨平台網頁設計範例教本(電子書)
取得 DOM 元素數 jQuery 物件可以使用 length 屬性取得包裝的 DOM 元素數,如下所示: var length; length = $("li:contains('ASP')").length;上述程式碼使用 length ...
#93. JavaScript與jQuery網頁設計範例教本 (電子書)
取得 jQuery 包裝類別的 DOM 元素 jQuery 選擇器可以傳回 jQuery 包裝類別的物件,其內容是選出的 DOM 元素,如果需要,我們可以直接存取被其包裝的 DOM 元素。
#94. Xmlhttprequest onerror status code - MYNOXCRAFT
responseText Returns a DOM String that contains the response to the request as ... プロパティ: 型: 説明: L: readyState: Number: XHR 通信の状態を取得する: 1: ...
#95. jQuery 教學– attr() 抓取圖片的屬性以及改變圖片的路徑
到了jQuery 語法,就改成了使用$(“#MYIMG”).attr(“src”); 這個方法來抓取圖片 ... 第7 行:選取$(“#BIG”) 大圖片,使用attr(“取得圖片的路徑”,”更改圖片的路徑”) 。
#96. backbone.jsとcoffee scriptを組み合わせた小さいサンプル
取得 してきたソースにはサンプルプログラムもついており、TODOの操作ができます。 ... <script type="text/javascript" src="lib/jquery-1.6.4.js"></script> <script ...
#97. ドットインストール - 3分動画でマスターできる ...
HTML, CSS, JavaScript, PHP, Rubyをはじめ、iPhoneやAndroidアプリの作り方も学べます。豊富な3分動画を見ることで、はじめての人でも無理なくスキルを身につけていく ...
#98. [jQuery] 筆記(七) – 選擇器(selector)
jquery 提供selector 的機制,類似CSS 抓取DOM 元素的方式,針對網頁元素進行操控,選擇器背後的原理 ... 取得其class 屬性值為class1 的input元素
jquery 取得 dom 在 [心得] 都2017年了學學用原生JS來操作DOM吧- 看板Ajax 的必吃
JavaScript 在經過這幾年的進化之後,
原本大家習慣使用第三方函示庫(例如 jQuery)包裝的 DOM 操作方法,
現在都能夠使用原生的 JavaScript 來達成了。
參考:https://www.sitepoint.com/dom-manipulation-vanilla-javascript-no-jquery/
【一、查詢和取得 DOM】
我們有很方便的 querySelector() 和 querySelectorAll() 方式來取得 DOM。
// 取得單一元素
const oneElement = document.querySelector('#foo > div.bar')
// 取得所有符合的元素
const allElements = document.querySelectorAll('.bar')
可以透過 matches() 方式檢查元素是否符合指定的選擇器。
oneElement.matches('div.bar') === true
也可以在特定的元素底下繼續查詢。
const button = allElements.querySelector('button[type="submit"]')
那以前慣用的 getElementById()、getElementsByTagName() 呢?
當然也可以使用,但是 querySelector 不能動態更新查詢到的元素。
const elementsNew = document.querySelectorAll('div')
const elementsOld = document.getElementsByTagName('div')
// 動態插入一個新的 div
const newDiv = document.createElement('div')
document.body.appendChild(newDiv)
// elementsOld 會拿到 newDiv;elementsNew 則否。
elementsNew.length !== elementsOld.length
把 querySelectorAll() 回傳的 NodeList 轉成 Array 之後,
就能用 forEach() 方式走訪每個元素。
Array.from(allElements).forEach(element => {
// do something...
})
// IE 還不支援 Array.from(),可以用:
Array.prototype.forEach.call(allElements, element => {
// do something...
})
// 更短的寫法:
[].forEach.call(allElements, element => {
// do something...
})
【二、修改 class 和屬性】
要修改元素的 class,可以用方便的 classList 操作。
oneElement.classList.add('baz')
oneElement.classList.remove('baz')
oneElement.classList.toggle('baz')
// 檢查是否有指定的 class
oneElement.classList.contains('baz')
要修改元素的屬性(attribute),直接指定給該元素即可。
// 取得屬性
const oneValue = oneElement.value
// 設定屬性
oneElement.value = 'hello'
// 一口氣設定好多種屬性,用 Object.assign()
Object.assign(oneElement. {
value: 'hello',
id: 'world'
})
// 要刪除屬性,設定成 null 就好
oneElement.value = null
等等,那為何不用 getAttribute()、setAttribute() 和 removeAttribute () 呢?
因為這些方式是直接修改 HTML 的屬性,會導致瀏覽器進行重繪(redraw),
對效能來說是很大的影響(換句話說就是很慢)。
但如果你要修改的屬性真的需要重繪畫面(例如表格的 colspan 屬性等等)時例外。
要修改元素的 CSS 樣式,可以存取 style 物件。
oneElement.style.paddingTop = '2rem'
要取得元素的 CSS 值,可以像上面一樣透過 style 物件,
也可以透過 window.getComputedStyle() 取得實際的值。
window.getComputedStyle(oneElement).getPropertyValue('padding-top')
【三、修改 DOM】
// 在 element1 裡插入一個 element2
element1.appendChild(element2)
// 在 element1 裡的 element3 之前插入一個 element2
element1.insertBefore(element2, element3)
世界上有 insertBefore() 卻沒有 insertAfter(),所以必須繞個圈。
// 在 element1 裡的 element3 「之後」插入一個 element2
element1.insertBefore(element2, element3.nextSibling)
// 不能寫成:
// element1.insertAfter(element2, element3)
// 複製 DOM
const newElement = oneElement.cloneNode()
element1.appendChild(newElement)
// 建立新的 DOM
const newElement = document.createElement('div')
const newTextNode = document.createTextNode('hello world')
// 移除 DOM,需要參照到親元素
parentElement.removeChild(element1)
// 自己移除自己
element1.parentNode.removeChild(element1)
要修改元素的內容,傳統的做法可以用 innerHTML:
oneElement.innerHTML = '<div>
<h1>hello world</h1>
</div>'
更好的做法是使用 DocumentFragment:
const text = document.createTextNode('continue reading...')
const hr = document.createElement('hr')
const fragment = document.createDocumentFragment()
fragment.appendChild(text)
fragment.appendChild(hr)
oneElement.appendChild(fragment)
【四、監聽事件】
JavaScript 最重要的就是監聽(listen)各種事件來觸發程式碼。
我們使用 addEventListener 來監聽事件處理。
oneElement.addEventListener('click', function (event) {
// do something...
})
同時監聽許多元素時,透過 event.target 來取得是哪個元素觸發的。
Array.from(allElements).forEach(element => {
element.addEventListener('change', function (event) {
console.log(event.target.value)
})
})
只想讓事件觸發一次(jQuery 的 once):
oneElement.addEventListener('change', function listener(event) {
console.log(event.type + ' got triggered on ' + this)
this.removeEventListener('change', listener)
})
【五、動畫】
以前習慣用 window.setTimeout() 來做動畫,
現在我們有更好更快的 window.requestAnimationFrame() 了。
const start = window.performance.now()
const duration = 2000
window.requestAnimationFrame(function fadeIn (now) {
const progress = now - start
oneElement.style.opacity = progress / duration
if (progress < duration) {
window.requestAnimationFrame(fadeIn)
}
}
【六、包裝】
最後我們可以把這些方式全部包在一個 function 裡。
就像 jQuery 一樣,還可以鍊式呼叫(chainable)
(例如: $('foo').css({color: 'red'}).on('click', () => {}) )
const $ = function $(selector, context = document) {
const elements = Array.from(context.querySelectorAll(selector))
return {
elements,
html (newHtml) {
this.elements.forEach(element => {
element.innerHTML = newHtml
})
return this
},
css (newCss) {
this.elements.forEach(element => {
Object.assign(element.style, newCss)
})
return this
},
on (event, handler, options) {
this.elements.forEach(element => {
element.addEventListener(event, handler, options)
})
return this
}
// etc.
}
}
或者用 ES6 的 Class 來包裝:
class DOM {
constructor(selector) {
const elements = document.querySelectorAll(selector)
this.length = elements.length
Object.assign(this, elements)
}
each(callback) {
for (let el of Array.from(this)) {
callback.call(el)
}
return this
}
addClass(className) {
return this.each(function () {
this.classList.add(className)
})
}
removeClass(className) {
return this.each(function () {
this.classList.remove(className)
})
}
hasClass(className) {
return this[0].classList.contains(className)
}
on(event, callback) {
return this.each(function () {
this.addEventListener(event, callback, false)
})
}
// etc.
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.11.65
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1491563311.A.1F2.html
※ 編輯: jmlntw (36.224.11.65), 04/07/2017 19:14:00
※ jmlntw:轉錄至看板 Web_Design 04/07 19:15
※ 編輯: jmlntw (36.224.11.65), 04/07/2017 19:30:14
... <看更多>