獲取頁面元素的方式javascript
1.經過js的dom方法:可使用內置對象 document 上的 getElementById 方法來獲取頁面上設 置了 id 屬性的元素,獲取到的是一個 html 對象,而後將它賦值給一個變量.html
獲取頁面元素那麼必須將獲取元素的代碼塊放置在事件中java
若是把 javascript 寫在元素的上面,就會出錯,由於頁面上從上往下加載執行的,javascript 去頁面上獲取元素 div1 的時候,元素 div1尚未加載,解決方法有兩種:數組
(1)將 javascript 語句放到 window.onload 觸發的函數裏面,獲取元素的語句會在頁面加載完後才執行.瀏覽器
注:屬性的操做包括bash
屬性的讀和寫。dom
操做屬性的方法函數
屬性的寫法學習
一、html 的屬性和 js 裏面屬性寫法同樣
二、「class」 屬性寫成 「className」
三、「style」 屬性裏面的屬性,有橫槓的改爲駝峯式,好比:`font-size`,改爲 `style.fontSize`
複製代碼
經過.
操做屬性:ui
經過[ ]
操做屬性:
<script type="text/javascript">
window.onload=function(){
var div=document.getElementById('div1');
// alert(div);//輸出結果爲[object HTMLDivElement]
div.style.width=200+'px';
div.style.height=200+'px';
div.style.background='red';
// div.style.border='5px dashed black';//兩種書寫格式
div.style.borderWidth=5+'px';
div.style.borderColor='red';
div.style.borderStyle='dashed';
// 獲取頁面中div的值(innerHTML與innerTEXT)
var divContent=div.innerHTML;//獲取頁面元素中的內容(包含元素中的HTML的子元素)
alert(divContent);//輸出結果爲 Hello JavaScript<p>愛學習</p>
// var divContent=div.innerText;//獲取頁面中文本內容
// alert(divContent);
}
</script>
<body>
<div id="div1">Hello JavaScript<p>愛學習</p></div>
</body>
複製代碼
(2):將 javascript 放到頁面最下邊 (寫入body中)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="div1" id="div1">Hello JavaScript<p>愛學習</p></div>
<script type="text/javascript">
window.onload=function(){
var div=document.getElementById('div1');
// alert(div); 返回的結果爲: [object HTMLDIVElement]
div.style.width=200+'px';
div.style.height=200+'px';
div.style.background='red';
// div.style.border='10px dashed black';
div.style.borderColor='black';
div.style.borderWidth=10+'px';
div.style.borderStyle='dashed';
// 獲取頁面中div的值
// innerHTML: 獲取頁面元素中的內容(包含元素中的html子元素)
var divContent =div.innerHTML;
// innerText:獲取頁面元素中的文本內容
var divContent=div.innerText;
// alert(divContent);
// var divWidth=div.innerWidth;
// alert(divWidth);
div.innerHTML='<a href="#">超連接</a>學的不只是技術'
// }
</script>
</body>
</html>
複製代碼
2.經過getElementsByclassName()根據元素的class獲取元素 由於getElementsByClassName()獲取到的結果是一個集合,要想獲取單個的元素使用索引的方式獲取
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload=function(){
// 如下是根據索引獲取頁面中第二個div
var div=document.getElementsByClassName('div1')[1];
// alert(div);
div.style.width=200+'px';
div.style.height=200+'px';
div.style.background='red';
}
</script>
</head>
<body>
<div class="div1"></div>
<div class="div1"></div>
</body>
</html>
複製代碼
3.經過getElementsByTagname():根據元素標籤名稱獲取元素(返回集合對象數組,能夠經過*
方式獲取頁面上全部的元素)
<body>
<div id="div1">好好學習每天向上<p>請認真聽講</p></div>
<div id="div1">好好學習每天向上<p>請認真聽講</p></div>
<div id="div1">好好學習每天向上<p>請認真聽講</p></div>
<script type="text/javascript">
var div=document.getElementsByTagName('*').innerHTML;
alert(div1);
</script>
</body>
複製代碼
innerHTML和innerText的區別:
共同點:innerHTML和innerText都會把元素內內容替換掉。
不一樣點:
(1)innerHTML:也就是從對象的起始位置到終止位置的所有內容,包括Html標籤。
(2)innerText:從起始位置到終止位置的內容, 但它去除Html標籤
innerHTML是符合W3C標準的屬性,而innerText只適用於IE瀏覽器,所以,儘量地去使用innerHTML。