js dom選擇器一屋,基本操作

dom選擇器。

我們知道document表示文檔骑素,我們就是通過document里面的方法選擇標(biāo)簽炫乓。

1:document.getElementById();

通過選擇Id選擇器,來選擇標(biāo)簽。

 <div id="demo">123 </div>        <div > 456</div>        <script type='text/javascript'>        var div=document.getElementById('demo');        </script>

image.png

目標(biāo)很明確厢岂,選擇了id='demo'的div

注意:元素在ie8以下的選擇器光督,不區(qū)分id的大小寫,而且也能匹配name屬性的元素(也就是如果有name='demo')那么也會被匹配塔粒。

2:document.getElementsByTagName()

通過標(biāo)簽名來選擇標(biāo)簽结借。

 <div id="demo">123 </div>
        <div > 456</div>
        <span>
            <em></em>
        </span>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('div');
        </script>


image.png

直接可以把所有的div標(biāo)簽全部選擇出來。這里注意我們返回的是一個類數(shù)組名卒茬,我們可以像數(shù)組一樣調(diào)用每一個div

我們應(yīng)該注意到這樣帶getElements的s的就是把一類都選出來船老,注意返回的是類數(shù)組。

這個很常用圃酵。

3:document.getElementsByName()

通過name屬性來選擇標(biāo)簽柳畔。

 <div id="demo">123 </div>
        <div name='cyl'> 456</div>
        <span>
            <em></em>
        </span>
        <script type='text/javascript'>
        var div=document.getElementsByName('cyl');
        </script>

image.png

這個方法對表單,img,iframe比較好郭赐,其他的你想想薪韩,你給加一個name干嘛了。

4:document.getElementsByClassName()

通過Class選擇器來選擇標(biāo)簽捌锭。

<div class="demo">123 </div>
        <div name='cyl'> 456</div>
        <span>
            <em></em>
        </span>
        <script type='text/javascript'>
        var div=document.getElementsByClassName('demo');
        </script>

image.png

注意ie8和ie8以下的沒有這個方法俘陷。

以上的幾種方法都是實時性的,也就是標(biāo)簽變了观谦,那么選擇器選擇的標(biāo)簽也會馬上改變拉盾。舉個栗子

<div class="demo">123 </div>
<div id='cyl'> 456</div>
<span>
<em></em>
</span>
<script type='text/javascript'>
var div1=document.getElementsByTagName('div');
var div2=document.getElementById('cyl');
</script>

我們通過標(biāo)簽名選擇到了倆個選擇器,通過id選擇器選擇到了一個選擇器豁状。

我們?nèi)缦虏僮?


image.png

我們把div2去掉(remove)捉偏,那么div1里面也沒有了。嘻嘻現(xiàn)在理解實時性了吧泻红。

下面?zhèn)z種沒有實時性的標(biāo)簽夭禽,功能很強大,但是沒有實時性就很尷尬了谊路,就沒有那么厲害了讹躯,不常用。

看如下代碼

  <div>
            <strong>123</strong>
        </div>
        <div>
            <span>
                <strong>456</strong>
            </span>
        </div>

我們要選擇下面一個strong標(biāo)簽怎么辦凶异?

1:document.querySelector();

可以讓我們像css一樣蜀撑,選擇標(biāo)簽。


image.png

就這樣輕易的選擇到了剩彬。

2:document.querySelectorAll()

和上面一樣,但是選擇所有的返回的是類數(shù)組


image.png

ie7以下的瀏覽器沒有這兩種方法酷麦。

因為沒有實時性的緣故,應(yīng)用并不好喉恋。

被選擇出來的標(biāo)簽沃饶,里面上有很多方法和屬性母廷,下面來介紹一下。

節(jié)點遍歷樹.

1:childNode

返回的是當(dāng)前標(biāo)簽的父親節(jié)點糊肤。

<body>
        <div>
            <strong></strong>
            <em></em>
            <span></span>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('strong');
        </script>

image.png

看的很清楚了吧琴昆,一層一層的直到document

2:childNodes

孩子節(jié)點們(注意是直系的)

<div>
            <strong></strong>
            <em></em>
            <span></span>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('div');
        </script>

你們猜一下,div有幾個孩子節(jié)點馆揉。是不是三個耙瞪帷?


image.png

image.png

這里的節(jié)點注意不只是css的節(jié)點升酣,還有html的節(jié)點舷暮。

節(jié)點類型:文本節(jié)點,屬性節(jié)點噩茄,元素節(jié)點下面,注釋節(jié)點,document,documentFragment

我們注意到:比如<div>和<strong>之間有“空格”這個是文本節(jié)點咯绩聘,在html里面可是分隔符咯沥割。

是不是加了四個文本節(jié)點。


image.png

3:firstChild

第一個兒子節(jié)點

 <div>
            123
            <strong></strong>
            <em></em>
            <span></span>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('div');
        </script>

div的第一個兒子節(jié)點是撒凿菩?


image.png

3:lastChild

最后一個兒子節(jié)點机杜,
4:nextSibling下一個兄弟節(jié)點,perviousSibling上一個兄弟節(jié)點

 <div>
            <strong></strong>
            <em></em>
            <span></span>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('strong');
        </script>

1:parentElement

直接父母元素節(jié)點

  <div>
            <strong></strong>
            <em></em>
            <span></span>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('strong');
        </script>

2:children

直接孩子元素節(jié)點

 <div>
            <strong></strong>
            <em></em>
            <span></span>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('div');
        </script>

3:firstElementChild||lastElementChild

返回第一個||最后一個元素節(jié)點

4:nextElementSibling||perviousElementSibling

下一個||上一個兄弟元素節(jié)點
節(jié)點的四屬性

1:nodeName(元素的標(biāo)簽名蓄髓,只可以讀)

 <div>
            <strong></strong>
            <em></em>
            <span></span>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('div');
        </script>

2:nodeValue(只有Text節(jié)點和Comment節(jié)點(注釋節(jié)點)有叉庐,可以寫)


image.png

3:nodeType(節(jié)點的類型)

通過返回值來確定節(jié)點類型

元素節(jié)點返回1 屬性節(jié)點返回2 文本節(jié)點返回3 注釋節(jié)點返回8 document返回9

documentFragment返回11


image.png

我們封裝一個函數(shù)來把一個節(jié)點樹中的元素節(jié)點都保存下來舒帮。

 <div>
            <span></span>
            <em></em>
            <strong></strong>
        </div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('div');
        function returnElements(target) {
            var arr=[];
            var child=target.childNodes;
            var len=child.length;
            for (var i=0;i<len;i++) {
                if (child[i].nodeType==1) arr.push(child[i]);
            }
            return arr;
        }
        console.log(returnElements(div[0]));
        </script>

4:attributes(元素節(jié)點屬性的集合)


image.png

mo'和id='cyl'

 <div class="demo" id="cyl"></div>
        <script type='text/javascript'>
        var div=document.getElementsByTagName('div');
        </script>
?著作權(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é)果婚禮上髓堪,老公的妹妹穿的比我還像新娘。我一直安慰自己娘荡,他們只是感情好旦袋,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著它改,像睡著了一般疤孕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上央拖,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天祭阀,我揣著相機與錄音,去河邊找鬼鲜戒。 笑死专控,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遏餐。 我是一名探鬼主播伦腐,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼失都!你這毒婦竟也來了柏蘑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤粹庞,失蹤者是張志新(化名)和其女友劉穎咳焚,沒想到半個月后,有當(dāng)?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
  • 正文 我出身青樓,卻偏偏與公主長得像说搅,于是被迫代替她去往敵國和親炸枣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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

  • ??DOM(文檔對象模型)是針對 HTML 和 XML 文檔的一個 API(應(yīng)用程序編程接口)。 ??DOM 描繪...
    霜天曉閱讀 3,644評論 0 7
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5套才? 答:HTML5是最新的HTML標(biāo)準(zhǔn)迂猴。 注意:講述HT...
    kismetajun閱讀 27,474評論 1 45
  • 一慕淡、概述 document節(jié)點是整個文檔樹的頂層節(jié)點背伴,每張網(wǎng)頁都有自己的document節(jié)點。window.doc...
    周花花啊閱讀 1,327評論 0 1
  • 1. 什么是DOM 文檔對象模型 (DOM) 是HTML和XML文檔的編程接口峰髓。它提供了對文檔的結(jié)構(gòu)化的表述傻寂,并定...
    hanyuntao閱讀 1,266評論 0 4
  • 公元2018年,這只鵝已然過了30年携兵,此鵝忽然想總結(jié)下前半生疾掰,發(fā)現(xiàn)此鵝種種行為、種種想法截與人異徐紧,恍惚間有種誤入人...
    一個特立獨行的鵝閱讀 257評論 0 0