一、找到元素:
docunment.getElementById("id");根據id找,最多找一個;
var a =docunment.getElementById("id");將找到的元素放在變量中;
docunment.getElementsByName("name");根據name找,找出來的是數組;
docunment.getElementsByTagName("name");根據標簽名找,找出來的是數組;
docunment.getElementsByClassName("name") 根據classname找,找出來的是數組;
二、操作內容:
1. 非表單元素:
(1)獲取內容:
alert(a.innerHTML);標簽裡的html代碼和文字都獲取了,標簽裡面的所有內容。
如:body中有這麼一個div:
<div id="me"><b>試試吧</b></div>
在script中用innerHTML獲取div中的內容:
var a= document.getElementById("me");
alert(a.innerHTML);
結果如下圖:
alert(a.innerText);只取裡面的文字
alert(a.outerHTML);包括標簽本身的內容(簡單了解)
(2)設置內容:
a.innerHTML = "<font color=red >hello world </font>";
如果用設置內容代碼結果如下,div中的內容被替換了:
a.innerText會將賦的東西原樣呈現
清空內容:賦值個空字符串
2. 表單元素:
(1)獲取內容,有兩種獲取方式:
var t = document.f1.t1; form表單ID為f1裡面的ID為t1的input;
var t = document.getElementById("id"); 直接用ID獲取。
alert(t.value); 獲取input中的value值;
alert(t.innerHTML); 獲取<textarea> 這裡的值 </textarea>;
(2)設置內容: t.value="內容改變";
3. 一個小知識點:
<a href="http://www.baidu.com" onclick ="return false">轉向百度</a> ;加了return flase則不會跳轉,默認是return true會跳轉。按鈕也一樣,如果按鈕中設置return flase 則不會進行提交,利用這個可以對提交跳轉進行控制。
三、操作屬性
首先利用元素的ID找到該元素,存於一個變量中:
var a = document.getElementById("id");
然後可以對該元素的屬性進行操作:
a.setAttribute("屬性名","屬性值"); 設置一個屬性,添加或更改都可以;
a.getAttribute("屬性名");獲取屬性的值;
a.removeAttribute("屬性名");移除一個屬性。
例子1:做一個問題,如果輸入的答案正確則彈出正確,錯誤彈出錯誤;
這裡在text裡面寫了一個daan屬性,裡面存了答案的值,點擊檢查答案的時候cheak輸入的內容和答案是否一樣:
Body中代碼:
<form>中華民國成立於哪一年?<input type="text" daan="1912年" value="" id="t1" name="t1" /><input type="button" onclick="check()" id="t2" name="t2" value="檢查答案" /></form>
JS中的代碼:
function check() { var a=document.getElementById("t1"); var a1=a.value; var a2=a.getAttribute("daan"); if(a1==a2) { alert("恭喜你答對了!"); } else { alert("笨蛋!"); } }
回答正確時的結果:
例子2: 同意按鈕,倒計時10秒,同意按鈕變為可提交的,這裡用了操作屬性:disabled,來改變按鈕的狀態,當disabled=”disabled”時按鈕不可用。
body中的代碼:
<form><input type="submit" id="b1" name="b1" value="同意(10)" disabled="disabled" /></form>
JS中的代碼:
var n=10; var a= document.getElementById("b1"); function bian() { n--; if(n==0) { a.removeAttribute("disabled"); a.value="同意"; return; } else { a.value= "同意("+n+")"; window.setTimeout("bian()",1000); } } window.setTimeout("bian()",1000);
運行的結果:
四、操作樣式
首先利用元素的ID找到該元素,存於一個變量中:
var a = document.getElementById("id");
然後可以對該元素的屬性進行操作:
a. ; 操作此ID樣式的屬性。
樣式為CSS中的樣式,所有的樣式都可以用代碼進行操作。
document.body.style.backgroundColor="顏色"; 整個窗口的背景色。
操作樣式的class:a.className="樣式表中的classname" 操作一批樣式
例子1:展示圖片的自動和手動切換;
Body中的代碼,做一個有背景圖片的div和兩側的控制對象:
<div id="tuijian" style=" background-image:url(imges/tj1.jpg);"> <div class="pages" id="p1" onclick="dodo(-1)"></div> <div class="pages" id="p2" onclick="dodo(1)"></div></div>
樣式表中的代碼:
<style type="text/css"> *{ margin:0px auto; padding:0px; font-family:"微軟雅黑"; } #tuijian { width:760px; height:350px; background-repeat:no-repeat; } .pages { top:200px; background-color:#000; background-position:center; background-repeat:no-repeat; opacity: 0.4; width: 30px; height:60px; } #p1 { background-image:url(imges/prev.png); float:left; margin:150px 0px 0px 10px; } #p2 { background-image:url(imges/next.png); float:right; margin:150px 10px 0px 0px; } </style>
JS中的代碼,這裡主要是每隔3秒中調用一下huan()函數,來將背景圖片的樣式修改,在點擊左右切換的時候變為手動切換,自動切換停止:
<script language="javascript"> var jpg =new Array(); jpg[0]="url(imges/tj1.jpg)"; jpg[1]="url(imges/tj2.jpg)"; jpg[2]="url(imges/tj3.jpg)"; var tjimg = document.getElementById("tuijian"); var xb=0; var n=0; function huan() { xb++; if(xb == jpg.length) { xb=0; } tjimg.style.backgroundImage=jpg[xb]; if(n==0) { var id = window.setTimeout("huan()",3000); } } function dodo(m) { n=1; xb = xb+m; if(xb < 0) { xb = jpg.length-1; } else if(xb >= jpg.length) { xb = 0; } tjimg.style.backgroundImage=jpg[xb]; } window.setTimeout("huan()",3000);</script>
效果如下圖:
五、相關元素操作:
var a = document.getElementById("id");找到a;
var b = a.nextSibling,找a的下一個同輩元素,注意包含空格;
var b = a.previousSibling,找a的上一個同輩元素,注意包含空格;
var b = a.parentNode,找a的上一級父級元素;
var b = a.childNodes,找出來的是數組,找a的下一級子元素;
var b = a.firstChild,第一個子元素,lastChild最後一個,childNodes[n]找第幾個;
alert(nodes[i] instanceof Text); 判斷是不是文本,是返回true,不是返回flase,用if判斷它的值是不是false,可以去除空格。
六、元素的創建、添加、刪除:
var a = document.getElementById("id");找到a;
var obj = document.createElement("標簽名");創建一個元素
obj.innerHTML = "hello world";添加的時候首先需要創建出一個元素。
a.appendChild(obj);向a中添加一個子元素。
a.removeChild(obj);刪除一個子元素。
列表中a.selectedIndex:選中的是第幾個;
//a.options[a.selectIndex]按下標取出第幾個option對象
七、字符串的操作:
var s = new String(); 或var s ="aaaa";
var s = "hello world";
alert(s.toLowerCase());轉小寫 toUpperCase() 轉大寫
alert(s.substring(3,8));從第三個位置截取到第八個位置
alert(s.substr(3,8));從第三個位置開始截取,截取八個字符長度,不寫後面的數字是截到最後.
s.split('');將字符換按照指定的字符拆開,放入數組,自動排序
s.length是屬性
s.indexOf("world");world在字符串中第一次出現的位置,沒有返回-1
s.lastIndexOf("o");o在字符串中最後一次出現的位置
八、日期時間的操作
var d = new Date();當前時間
d.setFullYear(2015,11,6);/*在想要設置的月份上減1設置*/
d.getFullYear:取年份;
d.getMonth():取月份,取出來的少1;
d.getDate():取天;
d.getDay():取星期幾
d.getHours():取小時;
d.getMinutes():取分鐘;d.getSeconds():取秒
d.setFullYear():設置年份,設置月份的時候注意-1。
九、數學函數的操作
Math.ceil();大於當前小數的最小整數
Math.floor();小魚當前小數的最大整數
Math.sqrt();開平方
Math.round();四捨五入
Math.random();隨機數,0-1之間
十、小知識點
外面雙引號,裡面的雙引號改為單引號;
在div裡面行高設置時,無論設置多麼高,所占用的行默認在中間位置(div上下區域內中間——【默認】垂直居中)。
文本框取出來的值是字符串,需要用parseint()轉化為數字
s.match(reg); s代表一個字符串,reg代表一個字符串,兩者進行匹配,如果兩個字符串不匹配,返回一個null。
以上這篇JavaScript——DOM操作——Window.document對象詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。