關(guān)于基礎(chǔ)的元素選擇器,元素的關(guān)系選擇器愧杯,其他節(jié)點(diǎn)選擇器涎才,以及關(guān)于屬性的操作的總結(jié)

關(guān)于基礎(chǔ)的元素選擇器,元素的關(guān)系選擇器,其他節(jié)點(diǎn)選擇器耍铜,以及關(guān)于屬性的操作的總結(jié)

<body>

<div?id="box">1</div>

<div?id="box">2</div>

<div?id="box">3</div>

<div?class="cont">4</div>

<div?class="cont">5</div>

<div?class="cont">6</div>

<div?class="msg">

<div?class="xbox">

<h2>二級(jí)標(biāo)題3</h2>

<h2>二級(jí)標(biāo)題4</h2>

</div>

<h2>二級(jí)標(biāo)題1</h2>

<h2>二級(jí)標(biāo)題2</h2>

</div>

<span>7</span>

<span>8</span>

<span>9</span>

<input?type="text"?name="user">

<input?type="text"?name="pass">

<input?type="text"?name="user">

</body>



元素的基礎(chǔ)選擇器:

1:querySelector:無論如何只能選擇一個(gè)元素邑闺,單個(gè)元素,哪怕有多個(gè)

var ele = document.querySelector("#box");

console.log(ele);//<div id="box">1</div>

console.log(ele.innerHTML);//1

var ele = document.querySelector(".msg h2");//h3選擇的是后代元素的第一個(gè)

var ele = document.querySelector(".msg>h2");//h1選擇的是直系子代的第一個(gè)



2:querySelectorAll:可以選擇多個(gè)棕兼,無論如何選擇出的都是數(shù)組陡舅,哪怕只有一個(gè),解析數(shù)組后才能使用標(biāo)簽

var?ele = document.querySelectorAll("#box");

console.log(ele);//得到的是一個(gè)數(shù)組伴挚,可以通過數(shù)組的序列選擇靶衍,來選定需要選擇的元素


元素的關(guān)系選擇器

<body>

<span>1</span>

<span>2</span>

<span>3</span>

<div?class="box">

<div?class="xbox">

<p>段落1</p>

<p>段落2</p>

<p>段落3</p>

<p>段落4</p>

<p>段落5</p>

<p>段落6</p>

</div>

</div>

<em>1</em>

<em>2</em>

<em>3</em>

</body>



var oXbox = document.querySelector(".xbox");

1:父選子元素:子可以有多個(gè),必須是數(shù)組茎芋,要拿到具體的元素颅眶,必須先解析數(shù)組

var child = oXbox.children;

console.log(child);//得到一個(gè)p的數(shù)組

2:子選父元素:父只能有一個(gè),只能是單個(gè)元素

var parent = oXbox.parentNode;

console.log(parent);//

3:第一個(gè)子元素

var first = oXbox.firstElementChild;

console.log(first);

4:最后一個(gè)子元素

var last = oXbox.lastElementChild;

console.log(last);


5:上一個(gè)兄弟元素節(jié)點(diǎn)

var?obox = document.querySelector(".box");

var?c=obox.previousElementSibling;//.box的上一個(gè)兄弟元素節(jié)點(diǎn)

console.log(c);//<span>3</span>


6:下一個(gè)兄弟元素節(jié)點(diǎn)

var?b=obox.nextElementSibling;//.box的下一個(gè)兄弟元素節(jié)點(diǎn)

console.log(b);//<em>1</em>


其他節(jié)點(diǎn)選擇器

<body>

<span>1</span>

<span>2</span>

<span>3</span>

<div?class="box"?id="a"?title="b"?abc="c"?ajsjsd="d">

<div?class="xbox">

hello

<p>段落1</p>

<!-- <p>段落2</p> -->

<p>段落3</p>

</div>

</div><em>1</em>

<em>2</em>

<em>3</em>

</body>


var oxbox = document.querySelector(".xbox");

1:子節(jié)點(diǎn)選擇器

var child = oxbox.childNodes;

console.log(child);//得到一個(gè)length為7的數(shù)組田弥,拿到具體的子節(jié)點(diǎn)涛酗,需要借助數(shù)組的索引

2:第一個(gè)子節(jié)點(diǎn)和最后一個(gè)子節(jié)點(diǎn)

console.log(oxbox.firstChild);//是一個(gè)text

console.log(oxbox.lastChild);//是一個(gè)text


3:上一個(gè)兄弟節(jié)點(diǎn),下一個(gè)兄弟節(jié)點(diǎn)

var obox = document.querySelector(".box");

console.log(obox.previousSibling)//是一個(gè)text

console.log(obox.nextSibling)//<em>1</em>


4:屬性節(jié)點(diǎn)偷厦,需要配合單獨(dú)的屬性節(jié)點(diǎn)選擇器選中商叹,不在DOM的家族關(guān)系中

var obox = document.querySelector(".box");//.box的類型為對(duì)象

var?b=obox.attributes//選擇.box中的屬性節(jié)點(diǎn)

console.log(b);//一個(gè)類似于數(shù)組的對(duì)象,可以使用數(shù)組的操作方法

得到具體的節(jié)點(diǎn)中的屬性只泼,需要結(jié)合數(shù)組的索引


對(duì)屬性的操作

<body>

<div?class="box"?title="這是一個(gè)title"?abc="hello"?href="asdas"?><i>內(nèi)容</i></div>

</body>

一:內(nèi)置屬性:

相當(dāng)于是對(duì)對(duì)象的操作(點(diǎn)語法,[]中括號(hào)語法)

var?obox=document.querySelector(".box");

1:可見的

console.log(obox.className)//box;

obox.className = "qwewqe";//頁面上的div中變?yōu)閏lass="qwewqe"


2:不可見的:

innerHTML,innerText,tagName

console.log(obox.innerHTML)//打印div中的內(nèi)容

console.log(obox.innerText)//打印div中的內(nèi)容剖笙,包括內(nèi)容中的標(biāo)簽

console.log(obox.tagName)//打印這個(gè)標(biāo)簽的類型


二:自定義屬性:

1:可見的

可見:Attribute系列:set,get请唱,remove

console.log(obox.getAttribute("abc"))//hello

obox.setAttribute("qwe","hahahahah")//在div中創(chuàng)建了一個(gè)qwe:"hahhahhah"的屬性

obox.removeAttribute("abc")//刪除了abc這個(gè)屬性

2:不可見的

就是講元素對(duì)象當(dāng)做對(duì)象操作



節(jié)點(diǎn)的操作

<body>

<div?class="box"?title="這是一個(gè)title"?abc="這是一個(gè)自定義abc">

<span>1</span>

hello

<!-- 這是一個(gè)注釋 -->

<span>2</span>

<em>3</em>

<em>4</em>

<em>5</em>

</div>

</body>

/ 節(jié)點(diǎn):

// 元素枯途,文本,注釋籍滴,屬性節(jié)點(diǎn)


// 節(jié)點(diǎn)類型:nodeType

// 節(jié)點(diǎn)名字:nodeName

// 節(jié)點(diǎn)值:nodeValue

1:對(duì)子節(jié)點(diǎn)的操作

var obox = document.querySelector(".box")//選中元素

var child = obox.childNodes;//選中節(jié)點(diǎn)的子節(jié)點(diǎn),得到一個(gè)數(shù)組榴啸,對(duì)相應(yīng)的子節(jié)點(diǎn)操作孽惰,需要借助索引

console.log(child[1].nodeType); //1

console.log(child[1].nodeName);?//SPAN

console.log(child[1].nodeValue);?//null


2:對(duì)屬性節(jié)點(diǎn)的操作

var obox = document.querySelector(".box")//選中元素

var attr = obox.attributes;//選中元素中的屬性節(jié)點(diǎn)




DOM的樣式操作

<style>

.box{width:100px;height:100px;background:red;border: solid?20px?yellow;}

</style>

1:獲取行內(nèi)和給行內(nèi)樣式

var?obox = document.querySelector(".box");

console.log(getComputedStyle(obox,false).width)//獲取width的寬度值:100px;

2:設(shè)置樣式:obox.style.width="200px";//將width的寬度值設(shè)置成200px;

obox.style.cssText="text-align:right;"http://比較常用

// 獲取樣式就用:getStyle

// 設(shè)置樣式就用:style屬性

獲取樣式只能在正常瀏覽器中使用,IE除外鸥印,參照兼容的封裝函數(shù)








兼容的封裝函數(shù):

function?getStyle(ele,attr){

if(ele.currentStyle){ //以IE的書寫格式獲取

return?ele.currentStyle[attr];

}else{

return?getComputedStyle(ele,false)[attr];

}

}


console.log(getStyle(obox,"width"))

console.log(getStyle(obox,"background-color"))

console.log(getStyle(obox,"border-width"))


DOM尺寸的獲取

<style>

.box{width:100px;height:100px;padding:10px;border: solid?20px?black;margin: 60px;position: relative;left:80px;top:80px;overflow: auto;}

</style>

<body>

<h2>321213</h2>

<div?class="box">

出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條出現(xiàn)滾動(dòng)條

</div>

</body>

1:div尺寸的獲取//比較常用

console.log(obox.offsetHeight); //cont+padding+border?160=100+20+40

console.log(obox.clientHeight); //cont+padding?120=100++20

console.log(obox.scrollHeight); //包括可以滾動(dòng)的尺寸超出邊框的內(nèi)容也包括在內(nèi)


2:div相對(duì)于頁面位置的值的獲取

console.log(obox.offsetTop); //相對(duì)于頁面或包含塊偏移的位置

console.log(obox.offsetLeft); //相對(duì)于頁面或包含塊偏移的位置



擴(kuò)展:三木運(yùn)算

var a = n<10 ? "0"+n : n;

補(bǔ)0:如果你<10 則補(bǔ)0 否則為n;



DOM元素的操作

//?創(chuàng)建元素

????//?var?abc?=?document.createElement("div");//比較常用

????//?console.log(abc);

????//?將元素插入到指定的父級(jí)的最后一個(gè)子元素

??? body.appendChild(abc);


????//?刪除元素

????//?var?box?=?document.querySelector(".box")

????//?var?op?=?box.children[0];

????//?box.remove();

????//?box.removeChild(op);

????//?op.remove()


????//?改標(biāo)簽:

????var?box?=?document.querySelector(".box")

????//?console.log(box.outerHTML)

????//?box.outerHTML?=?"<span>"+?box.innerHTML?+"</span>";

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勋功,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子库说,更是在濱河造成了極大的恐慌狂鞋,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潜的,死亡現(xiàn)場(chǎng)離奇詭異骚揍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門信不,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘲叔,“玉大人,你說我怎么就攤上這事抽活×蚋辏” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵下硕,是天一觀的道長(zhǎng)丁逝。 經(jīng)常有香客問我,道長(zhǎng)梭姓,這世上最難降的妖魔是什么霜幼? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮糊昙,結(jié)果婚禮上辛掠,老公的妹妹穿的比我還像新娘。我一直安慰自己释牺,他們只是感情好萝衩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著没咙,像睡著了一般猩谊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祭刚,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天牌捷,我揣著相機(jī)與錄音,去河邊找鬼涡驮。 笑死暗甥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的捉捅。 我是一名探鬼主播撤防,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼棒口!你這毒婦竟也來了寄月?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤无牵,失蹤者是張志新(化名)和其女友劉穎漾肮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茎毁,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡克懊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片保檐。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耕蝉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夜只,到底是詐尸還是另有隱情垒在,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布扔亥,位于F島的核電站场躯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏旅挤。R本人自食惡果不足惜踢关,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粘茄。 院中可真熱鬧签舞,春花似錦、人聲如沸柒瓣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芙贫。三九已至搂鲫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磺平,已是汗流浹背魂仍。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拣挪,地道東北人擦酌。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像菠劝,于是被迫代替她去往敵國(guó)和親仑氛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

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