DOM操作小記

dom對(duì)象的innerText和innerHTML有什么區(qū)別燎猛?

innerText是一個(gè)可寫(xiě)屬性动知,返回元素內(nèi)包含的文本內(nèi)容,在多層次的時(shí)候會(huì)按照元素由淺到深的順序拼接其內(nèi)容

innerHTML屬性作用和innerText類似,但是不是返回元素的文本內(nèi)容蚣常,而是返回元素的HTML結(jié)構(gòu),在寫(xiě)入的時(shí)候也會(huì)自動(dòng)構(gòu)建DOM

elem.children和elem.childNodes的區(qū)別痊银?

element.children返回一個(gè)由子元素節(jié)點(diǎn) (只是元素節(jié)點(diǎn)) 構(gòu)成的集合
children 屬性為只讀屬性抵蚊,對(duì)象類型為 HTMLCollection,你可以使用 elementNodeReference.children[1].nodeName 來(lái)獲取某個(gè)子元素的標(biāo)簽名稱溯革。

element.childNodes返回包含指定節(jié)點(diǎn)的子節(jié)點(diǎn)的集合,(是子節(jié)點(diǎn)不光是子元素節(jié)點(diǎn))該集合為即時(shí)更新的集合 為NodeList 類型贞绳,且為只讀

查詢?cè)赜袔追N常見(jiàn)的方法?ES5的元素選擇方法是什么?

document.getElementById()
如果沒(méi)有查找到對(duì)應(yīng)的元素致稀,方法會(huì)返回null冈闭。注意ID參數(shù)是大小寫(xiě)敏感的,所以document.getElementById("Main")無(wú)法獲取到元素<div id="main">抖单,因?yàn)?M'和'm'是不一樣的萎攒。
getElementById方法不會(huì)搜索不在文檔中的元素遇八。當(dāng)創(chuàng)建一個(gè)元素,并且分配ID后耍休,你必須要使用insertBefore或其他類似的方法把元素插入到文檔中之后才能使用 getElementById 獲取到

document.getElementsByTagName()
方法返回一個(gè)動(dòng)態(tài)的包含所有指定標(biāo)簽名的元素的HTML集合HTMLCollection刃永。指定的元素的子樹(shù)會(huì)被搜索,不包括元素自己羹应。返回的列表是動(dòng)態(tài)的揽碘,這意味著它會(huì)隨著DOM樹(shù)的變化自動(dòng)更新自身。所以园匹,使用相同元素和相同參數(shù)時(shí)雳刺,沒(méi)有必要多次的調(diào)用Element.getElementsByTagName()

document.getElemenstByClassName()
返回一個(gè)類似數(shù)組的對(duì)象,包含了所有指定 class 名稱的子元素(HTMLCollection類型的對(duì)象)裸违。當(dāng)調(diào)用發(fā)生在document對(duì)象上時(shí), 整個(gè)DOM都會(huì)被搜索, 包含根節(jié)點(diǎn)掖桦。你也可以在任意元素上調(diào)用getElementsByClassName() 方法,它將返回的是以當(dāng)前元素為根節(jié)點(diǎn)(搜索范圍包含自己)供汛,所有指定class名稱的子元素枪汪。

document.getElementsByClassName('test shake');  class名稱通過(guò)空格分隔

document.getElementsByName
用于選擇擁有name屬性的HTML元素,比如form怔昨、img雀久、frame、embed和
object趁舀,返回一個(gè)NodeList格式的對(duì)象赖捌,不會(huì)實(shí)時(shí)反映元素的變化。

ES5
document.querySelector()返回匹配指定的CSS選擇器的元素節(jié)點(diǎn)矮烹。如果有多個(gè)節(jié)點(diǎn)滿足匹配條件越庇,則返回第一個(gè)匹配的節(jié)點(diǎn)。如果沒(méi)有發(fā)現(xiàn)匹配的節(jié)點(diǎn)奉狈,則返回null卤唉。
document.querySelectorAll()querySelectorAll方法返回匹配指定的CSS選擇器的所有節(jié)點(diǎn),返回的是NodeList類型的對(duì)象仁期。NodeList對(duì)象不是動(dòng)態(tài)集合桑驱,所以元素節(jié)點(diǎn)的變化無(wú)法實(shí)時(shí)反映在返回結(jié)果中。

如何創(chuàng)建一個(gè)元素蟀拷?如何給元素設(shè)置屬性碰纬?如何刪除屬性

document.createElement('div') 

element.setAttribute('align','center')
如果屬性已經(jīng)存在,則更新該值; 否則將添加一個(gè)新的屬性用指定的名稱和值

element.removeAttribute('align')

如何給頁(yè)面元素添加子元素问芬?如何刪除頁(yè)面元素下的子元素?

Node.appendChild() 方法將一個(gè)節(jié)點(diǎn)添加到指定父節(jié)點(diǎn)的子節(jié)點(diǎn)列表末尾
var child = node.appendChild(child);
node 是要插入子節(jié)點(diǎn)的父節(jié)點(diǎn) child 即是參數(shù)又是這個(gè)方法的返回值.
appendChild 方法會(huì)把要插入的這個(gè)節(jié)點(diǎn)引用作為返回值返回喲
// 創(chuàng)建一個(gè)新的段落p元素,然后添加到body的最尾部
var p = document.createElement("p");
document.body.appendChild(p);

Node.removeChild() 方法從DOM中刪除一個(gè)子節(jié)點(diǎn)。返回刪除的節(jié)點(diǎn)
Node為參數(shù)的父節(jié)點(diǎn) 參數(shù)為要?jiǎng)h除的節(jié)點(diǎn)
let oldChild = node.removeChild(child);
//OR
element.removeChild(child);
被移除的這個(gè)子節(jié)點(diǎn)仍然存在于內(nèi)存中,只是沒(méi)有添加到當(dāng)前文檔的DOM樹(shù)中,因此,你還可以把這個(gè)節(jié)點(diǎn)重新添加回文檔中
當(dāng)然,實(shí)現(xiàn)要用另外一個(gè)變量比如上例中的oldChild來(lái)保存這個(gè)節(jié)點(diǎn)的引用. 如果使用上述語(yǔ)法中的第二種方法
即沒(méi)有使用 oldChild 來(lái)保存對(duì)這個(gè)節(jié)點(diǎn)的引用, 則認(rèn)為被移除的節(jié)點(diǎn)已經(jīng)是無(wú)用的, 在短時(shí)間內(nèi)將會(huì)被內(nèi)存管理回收

element.classList有哪些方法寿桨?如何判斷一個(gè)元素的 class 列表中是包含某個(gè) class此衅?如何添加一個(gè)class强戴?如何刪除一個(gè)class

Element.classList 是一個(gè)只讀屬性,返回一個(gè)元素的類屬性的實(shí)時(shí)DOMTokenList集合。
方法
add( String [, String] )
添加指定的類值挡鞍。如果這些類已經(jīng)存在于元素的屬性中骑歹,那么它們將被忽略。
remove( String [,String] )
刪除指定的類值墨微。
item ( Number )
按集合中的索引返回類值道媚。
toggle ( String [, force] )
當(dāng)只有一個(gè)參數(shù)時(shí):切換 class value; 即如果類存在,則刪除它并返回false翘县,如果不存在最域,則添加它并返回true。
當(dāng)存在第二個(gè)參數(shù)時(shí):如果第二個(gè)參數(shù)的計(jì)算結(jié)果為true锈麸,則添加指定的類值镀脂,如果計(jì)算結(jié)果為false,則刪除它
contains( String )
檢查元素的類屬性中是否存在指定的類值忘伞。

如何選中如下代碼所有的li元素薄翅? 如何選中btn元素?

<div class="mod-tabs">
  <ul>
   <li>list1</li>
   <li>list2</li>
   <li>list3</li>
  </ul>
  <button class="btn">點(diǎn)我</button>
</div>

  var allLi = document.getElementsByTagName('li')
  var theBtn = document.getElementsByClass('btn')

  document.querySelectorAll('li')
  document.querySelector('.btn')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末氓奈,一起剝皮案震驚了整個(gè)濱河市翘魄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舀奶,老刑警劉巖暑竟,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異伪节,居然都是意外死亡光羞,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)怀大,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)纱兑,“玉大人,你說(shuō)我怎么就攤上這事化借∏鄙鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蓖康,是天一觀的道長(zhǎng)铐炫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蒜焊,這世上最難降的妖魔是什么倒信? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮泳梆,結(jié)果婚禮上鳖悠,老公的妹妹穿的比我還像新娘榜掌。我一直安慰自己,他們只是感情好乘综,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布憎账。 她就那樣靜靜地躺著,像睡著了一般卡辰。 火紅的嫁衣襯著肌膚如雪胞皱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天九妈,我揣著相機(jī)與錄音反砌,去河邊找鬼。 笑死允蚣,一個(gè)胖子當(dāng)著我的面吹牛于颖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嚷兔,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼森渐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了冒晰?” 一聲冷哼從身側(cè)響起同衣,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎壶运,沒(méi)想到半個(gè)月后耐齐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒋情,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年埠况,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棵癣。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辕翰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狈谊,到底是詐尸還是另有隱情喜命,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布河劝,位于F島的核電站壁榕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赎瞎。R本人自食惡果不足惜牌里,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望务甥。 院中可真熱鬧二庵,春花似錦贪染、人聲如沸缓呛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哟绊。三九已至因妙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間票髓,已是汗流浹背攀涵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洽沟,地道東北人以故。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像裆操,于是被迫代替她去往敵國(guó)和親怒详。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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

  • 一踪区、基本概念 1.1昆烁、DOM DOM是JS操作網(wǎng)頁(yè)的接口,全稱為“文檔對(duì)象模型”(Document Object ...
    周花花啊閱讀 3,172評(píng)論 0 6
  • 基本介紹 文檔對(duì)象模型 (DOM) 是HTML和XML文檔的編程接口缎岗。它給文檔(結(jié)構(gòu)樹(shù))提供了一個(gè)結(jié)構(gòu)化的表述并且...
    草鞋弟閱讀 436評(píng)論 0 0
  • 可是人這種東西是要把自己附在什么上面才能生存的静尼。大島說(shuō),不能不那樣传泊。你也難免不知不覺(jué)如法炮制鼠渺。如歌德所說(shuō),世間萬(wàn)物...
    乾木青閱讀 250評(píng)論 0 0
  • kidII閱讀 138評(píng)論 0 0
  • Radon -- 孩子的姓名很重要 對(duì)于如今競(jìng)爭(zhēng)如此激烈的前端界來(lái)說(shuō)眷细,出一個(gè)組件庫(kù)拦盹,最重要的事情就是起個(gè)吊炸天的名...
    乖小鬼閱讀 5,497評(píng)論 6 13