DOM獲取元素的方法

操作DOM時我們經(jīng)常需要獲取元素,這里總結(jié)一下獲取元素的方法

方法名 參數(shù) 特點
document.getElementById(id) ID 返回單個對象
document.getElementsByClassName(names) class名稱 返回集合
document.getElementsByName(name) 元素name屬性 返回集合
document.getElementsByTagName(tagName) 標簽名 返回集合
document.querySelector(selectors) CSS選擇器 返回單個對象
document.querySelectorAll(selectors) CSS選擇器 返回集合

document.getElementById()

返回一個匹配特定 ID的元素.

語法

element = document.getElementById(id)

參數(shù)

  • element是一個 Element 對象。如果當前文檔中擁有特定ID的元素不存在則返回null.
  • id是大小寫敏感的字符串积蜻,代表了所要查找的元素的唯一ID.

示例

<!DOCTYPE html>
<html>
<head>
  <title>getElementById example</title>
  <script>
  function changeColor(newColor) {
    var elem = document.getElementById("para1");
    elem.style.color = newColor;
  }
  </script>
</head>
<body>
  <p id="para1">Some text here</p>
  <button onclick="changeColor('blue');">blue</button>
</body>
</html>

document.getElementsByClassName()

返回一個類似數(shù)組的對象茬缩,包含了所有指定 class 名稱的子元素呛谜。當調(diào)用發(fā)生在document對象上時, 整個DOM都會被搜索, 包含根節(jié)點纠俭。你也可以在任意元素上調(diào)用getElementsByClassName() 方法雳锋,它將返回的是以當前元素為根節(jié)點颂砸,所有指定class名稱的子元素灶轰。

語法

var elements = document.getElementsByClassName(names); // or: var elements = rootElement.getElementsByClassName(names);

參數(shù)

  • elements 是查找到的所有元素的集合 HTMLCollection .
  • names 是一個字符串谣沸,表示用于匹配的 class 名稱列表; class 名稱通過空格分隔
  • getElementsByClassName 可以在任意的元素上調(diào)用,不僅僅是 document笋颤。 調(diào)用這個方法的元素將作為本次查找的根元素.

示例

document.getElementsByClassName('test');
 //class同時包括red和test
document.getElementsByClassName('red test');
 //在id 為'main'的元素的子節(jié)點中乳附,獲取所有class為'test'的元素
document.getElementById('main').getElementsByClassName('test');

document.getElementsByName()

根據(jù)給定的name 返回一個在 (X)HTML document的節(jié)點列表集合。

語法

elements = document.getElementsByName(name) 

參數(shù)

  • elements 是一個 NodeList 集合伴澄。
  • name 是元素的 name 屬性的值赋除。

示例

<!DOCTYPE html>
<html lang="en">
<head>
 ...
</head>

<body>
<form name="up"><input type="text"></form>
<div name="down"><input type="text"></div>

<script>
var up_forms = document.getElementsByName("up");
console.log(up_forms[0].tagName); // returns "FORM"
</script>
</body>
</html>

document.getElementsByTagName()

返回帶有指定標簽名的對象的集合.

語法

elements = element.getElementsByTagName(tagName)

參數(shù)

tagName 必須放在引號中

示例

<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
<ul><li>Coffee</li><li>Tea</li></ul>
<p id="demo">單擊“按鈕”更改列表項的文本。</p>
<button onclick="myFunction()">點我</button>
<script>
function myFunction(){
    var list=document.getElementsByTagName("UL")[0]
    list.getElementsByTagName("LI")[0].innerHTML="Milk";
};
</script>
</body>
</html>

document.querySelector()

querySelector() 方法返回文檔中匹配指定 CSS 選擇器的一個元素非凌。

語法

element = document.querySelector(selectors)

參數(shù)

selectors: css選擇器

示例

  //獲取文檔中第一個 <p> 元素:
  document.querySelector("p")
  //獲取文檔中 class="example" 的第一個元素:
  document.querySelector(".example");
  //獲取文檔中 class="example" 的第一個 <p> 元素:
  document.querySelector("p.example");
  //獲取文檔中有 "target" 屬性的第一個 <a> 元素:
  document.querySelector("a[target]");
  

document.querySelectorAll()

語法

elementList = document.querySelectorAll(selectors);

參數(shù)

獲取的是一個集合

selectors為css選擇器

示例

//返回一個文檔中所有的class為"note"或者 "alert"的div元素
var matches = document.querySelectorAll("div.note, div.alert");
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末举农,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子敞嗡,更是在濱河造成了極大的恐慌并蝗,老刑警劉巖祭犯,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異滚停,居然都是意外死亡,警方通過查閱死者的電腦和手機粥惧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門键畴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人突雪,你說我怎么就攤上這事起惕。” “怎么了咏删?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵惹想,是天一觀的道長。 經(jīng)常有香客問我督函,道長嘀粱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任辰狡,我火速辦了婚禮锋叨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宛篇。我一直安慰自己娃磺,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布叫倍。 她就那樣靜靜地躺著偷卧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吆倦。 梳的紋絲不亂的頭發(fā)上听诸,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音逼庞,去河邊找鬼蛇更。 笑死,一個胖子當著我的面吹牛赛糟,可吹牛的內(nèi)容都是我干的派任。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼璧南,長吁一口氣:“原來是場噩夢啊……” “哼掌逛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起司倚,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤豆混,失蹤者是張志新(化名)和其女友劉穎篓像,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皿伺,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡员辩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸵鸥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奠滑。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妒穴,靈堂內(nèi)的尸體忽然破棺而出宋税,到底是詐尸還是另有隱情,我是刑警寧澤讼油,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布杰赛,位于F島的核電站,受9級特大地震影響矮台,放射性物質(zhì)發(fā)生泄漏乏屯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一嘿架、第九天 我趴在偏房一處隱蔽的房頂上張望瓶珊。 院中可真熱鬧,春花似錦耸彪、人聲如沸伞芹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唱较。三九已至,卻和暖如春召川,著一層夾襖步出監(jiān)牢的瞬間南缓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工荧呐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留汉形,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓倍阐,卻偏偏與公主長得像概疆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子峰搪,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容