1,轉義字符 \b 退格字符 \f 換頁符 \n 換行字符 \r 回車字符 \t 製表符 \'單引號 \"雙引號 \\ 反斜線 \xNN 其中NN是一個十六進制數,表示Latin-1字符集中的編號來表示一個字javascript
2.parseInt()函數與parseFloat()函數把字符串轉換爲整數和浮點數 這兩個函數逐字解析,若是解析到的字符不是有效數字,解析將中止,並把解析到以前的字符串轉換爲對應的數值。如parseInt("123abc")將返回數值123,當javascript解析到a字符a時,將認爲字符串的數字部分已經結束。parseFloat()與parseInt()的工做方式同樣,只是它把小數點也看成數字的一部分。若是沒有數字將返回NaNcss
3.建立數組 var myArray = new Array();(區分大小寫)。 限定長度 var myArray = new Array(6);也能夠 var myArray = new Array('Paul',33,"john",112); 在javascript中數組長度是能夠修改的,如咱們定義了一個長度爲3的數組 var myArray = new Array(3); 而後,爲索引130的元素定義一個值 myArray[130]="Paul";那麼JavaScript將認爲咱們修改了myArray數組的長度,並把myArray數組定義爲長度131,即至少能夠包含131個元素的數組。html
javascript模擬多維數組,並不存在,但能夠模擬出來 var personnel = new Array(); personnel[0] = new Array(); personnel[0][0] = "name0"; personnel[0][1] = "age0";java
4.字符串之間也能夠進行比較,全部應用於數值的比較也能夠應用於字符串,惟一不一樣的是字符串的比較是按字母順序時行比較。toUpperCase()將字符串轉換爲大寫形式。toLowerCase()將字符串轉換爲小寫形式。node
5.for...in語句能夠遍歷一個數組中的元素,而無須知道數組中元素的個數。它的含義是:對於數組中所包含的每個元素,執行一次循環體中的代碼。 for(index in arrayName) { }其中,index是一個循環語句以前聲明過的變量,它將自動被賦予索引所指的數組元素。arrayNamep它是一個變量,它包含咱們要遍歷的數組web
6.對於某個頁面來講,任何在函數以外聲明的變量,其做用域是該頁面上的全部腳本代碼。在函數中聲明的變量是局部變量。javascript將時常執行垃圾回收正則表達式
7.JavaScript的內建對象,常見的有String對象,Math對象,Array對象和Date對象編程
String對象 數組
當把一個字符串對象與一個基本數據類型的字符串比較時,將會比較實際的字符串值是否相等,但比較兩個String對象時,比較的是兩個對象的引入是否相等。對於String對象的在部分方法來講,咱們均可以將字符串視爲一個由單個字符所組成的系列。每一個字符具備一個索引,表示該字符在字符串中位置。瀏覽器
1》length屬性
2》charAt()方法獲取參數位置的字符 charCodeAt()方法獲取參數位置字符的Unicode編碼 fromCharCode()方法將字符編碼轉換爲字符串,它與上面的方法相反,它是String的一個靜態方法,咱們能夠直接調用String.fromCharCode(65,66); indexOf()和lastIndexOf()查找子串在字符串中的位置,它們具備兩個參數,須要查找的子串,從哪一個位置開始查找子串(可選)找到返回位置,找不到返回-1 substr()方法和substring()方法複製字符串的一個字串,兩個方法的不一樣之處在於參數,第一個參數都表示起始位置,第二個參數可選,若是沒有表示到字串的結束。substr()方法的第二個參數表示得到子串的長度。substring()方法的第二個參數表示到達的位置,即兩個位置以前的子串,包頭不包尾。
Math對象
javascript中的math對象的不同凡響之處在於,它是一個全局對象,在使用math對象以前,不須要聲明也不須要定義一個新的,javascript將自動建立好Math對象,咱們直接使用它便可。 Math對象包含一些常用的數學常量,如PI屬性 常見的數學方法有:
1.abs()方法返回傳入參數的絕對值
2.ceil()方法向上取整
3.floor()方法向下取整
4.round()方法用於對一個整數進行四捨五入
5.random()方法返回一個0到1之間的隨機數,包含0但不包含1
6.pow()方法用於計算一個數的指定冪pow(n,m)n爲底數,m爲冪
Number對象
與String對象相似,咱們須要先建立一個Number對象,而後才能使用Number對象的各類方法和屬性。 toFixed()方法用於截取指定小數點位數的數字,參數爲截取的小數的位數,此方法在截取位數的同時會四捨五入。
Array對象
concat()方法 鏈接兩個數組,能夠把兩個單獨的數組鏈接在一塊兒,造成一個新的數組,第一個數組調用此方法,將第二個數組對象傳進去
slice()方法,獲取數組的部分元素,返回值也是一個數組對象,兩個參數欲複製數組元素的起始索引,表示所複製數組元素的結束位置邊界的數組元素的索引(可選參數)
join()方法,將數組轉換爲字符串,並將這些字符串鏈接成一個完整的字符串,僅有一個參數就是鏈接數組元素的分隔符。
sort()方法 對數組進行排序,升序
reverse()方法 反轉數組中元素的順序,與sort()方法聯合使用能夠達到降序效果
Date對象
getDate()返回一個整數,表示當前日期是月份中的第幾天 getDay()方法,返回一個整數,表示當前日期是星期幾,0表示星期日依此類推 getMonth()返回一個表示當前月份的整數,0表示1月 getFullYear()返回一個以4位數表示的年份 getDateStrig()基於當前時區,返回一我的們能夠理解的日期字符串
setDate(),setMonth(),setFullYear();沒有setDay()由於當年月日肯定後,星期幾就肯定了 設置的值若是超出了以上三個函數的範圍,則他們會從第一天或月或年算起加上設置的值(能夠是負值)進行計算獲得新日期。因此計算某一年以後的28天就能夠用以下代碼 var nowDate = new Date(); var currentDay = newDate.getDate(); nowDate.setDate(currentDay + 28);
獲取時間的值 getHours(),getMinutes(),getSeconds(),getMilliseconds(),toTimeString() getMilliseconds()
8.javascript中的類
構造函數的名稱與類名徹底相同,在javascript中無需定義好類屬性,只須要爲屬性附值,javascript將自動建立這些屬性,對象一樣如此 javascript中的大部分對象都具備prototype屬性,經過prototype屬性能夠建立新的屬性和方法
9.瀏覽器編程 瀏覽器自己也是由不少對象組成的。如window對象它表示瀏覽器的窗體,咱們已經使用了window對象的兩個方法alert()和prompt()方法,還有document對象,用於加載瀏覽器中的頁面自己。一般把瀏覽器爲javascript所提供的對象的集合稱爲瀏覽器對象模型(Brow Ob Model,DOM).瀏覽器對象模型是一個具備層次的對象結構,在層級的頂端是windwo對象。window對象表明了瀏覽器的框架以及瀏覽器相關的全部一切。如滾動條,導航按鍵等都包含在window對象中。
window對象 它表明瀏覽器的框架或者瀏覽器的窗體,在某種程序上它也表明了瀏覽器自己。它包含了大量關於瀏覽器的屬性。window對象是一個全局對象,實際上全局函數與全局變量都是該全局對象的屬性,當聲明一個全局函數或全局變量時,其實是建立了該全局變量的一個屬性。alert()其實是window對象的一個方法,因爲window對象是一個全局對象,所以使用alert()而不是window.alert()也是正確 的。 window對象的某些屬性自己也是一個對象,如document對象,navigator對象,histroy對象,screen和location對象。其中,document表明瀏覽器的頁面。histroy包含用戶所訪問過的頁面的歷史記錄,navigator包含了瀏覽器自身的相關信息,screen包含了客戶端計算機顯示器顯示能力的信息。location包含了瀏覽器所加載的當前頁面的URL的詳細信息。 修改瀏覽器狀態欄信息用defaultStatus屬性,window.defaultStatus = "Hello "
history對象 history對象具備一個length屬性,使用length屬性,就能得到瀏覽器歷史棧中頁面的個數。history對象具備back()方法和forward()方法,histroy對象還具備go()方法,該方法接受一個參數,該參數指出以當前頁面爲基準,在歷史棧中前進或後退幾個頁面。
location對象 location對象包含了大量有關於當前頁面位置的有用信息,它不只包含了當前頁面的統一資源定位器(URL)信息,還包含了提供web服務的服務器信息,鏈接到服務器的端口號及所用協議信息。經過location對象的href屬性,hostname屬性,port屬性,protocol屬性,就能夠得到這些信息。 若是咱們要導航到另外一個頁面,可用兩種方法location.href(),location.replace()不一樣之處在於一個是加到歷史棧的頂部一個是替換,替換的經過歷史頁面將返回不到當前頁面。
navigator對象 它包含了運行當前腳本的瀏覽器和操做系統的大量相關信息。它最多見的用途就是用於區分不一樣的瀏覽器
screen對象 它包含了大量有關於客戶端計算機顯示能力的信息。具備height屬性和width屬性,這兩個屬性以像素爲單位。還有colorDepth屬性,表示顯示屏顏色的色彩位數
document對象 它具備不少與HTML文檔相關聯的屬性,這些屬性都是數組類型。其中幾個重要的屬性是forms數組,images數組和links數組。 對於每個具備href屬性的超連接標記<a>,瀏覽器將建立一個對應的A對象,link[]數組用於表示頁面上全部A對象的集合,就像前面看到的images[]數組包含img對象同樣
事件處理 事件處理器由關鍵字on加上要處理的事件名組成。如click事件,onclick
10.表單 咱們能夠直接經過表單名稱訪問表單對象,如document.myFrom來訪問這個表單對象,myFrom爲表單名,另外也可經過document對象的forms[]數組屬性來訪問這個表單對象 <form>標記的大部分屬性均可以做爲Form對象的屬性進行訪問,特別是,Form對象的name屬性映射到<form>標記的name屬性。 全部的表單元素都有focus()與blur()方法,得到焦點與失去焦點,都有onfocus()與onblur()事件 button支持onmousedown事件和onmouseup事件
文本框還具備兩個屬性,size屬性和maxlength屬性。size屬性決定文本框具備多少個字符的寬度,maxlength屬性用於決定用戶能夠在文本框中輸入多少個字符。它還具備select()方法用於選擇或加亮文本框中的文本。除了常見的onfocus和onblur事件外,text對象還有onchange,onselect,onkeydown,onkeypress和onkeyup事件處理器,當用戶選擇文本框的值時會觸發onselect事件,當且僅當文本框失去焦點時的值與得到焦點時的值不一樣時,纔會觸發文本框的onchange事件。
textarea 這還具備cols寬度屬性與rows高度屬性,還有一個wrap屬性,用以決定當用戶在文本區域中輸入到一行的結束時如何處理。wrap默認值是soft,它表示用戶在一行的結尾處無須輸入Enter鍵,當輸入內容超過文本域的右邊界時會自動轉到下一行。爲了打開文本區域的自動換行功能,能夠將wrap屬性的值設置爲soft或hard其中之一。若是要關閉回車換行把wrap設置爲off便可
checkbox複選框,radio單選按鈕,具備相同名字的單選按鈕將組成一個單選按鈕組
select標記將建立一個select對象,若是咱們想將列表框定義爲一個下拉列表框,只需將select標記的size設置爲1.若是容許用戶從列表框或下拉列表框中一次選擇多個選項,只需在<select>標記的定義中添加一個multiple屬性便可。
11.框架frame 不少web應用程序利用框架(frame)來分隔瀏覽器窗口。 對於一個不包含框架的頁面來講,僅存在一個window對象,但對於一個包含框架集的頁面來講,頁面中的每個框架都具備一個相應的window對象 若是一個框架中包含了子框架,則這些子框架所對應的window對象都是該框架的window對象的子對象 每個框架都具備一個單獨的窗口,並具備一個本身的window對象。另外,使用window對象的parent屬性,就能夠從框架集中所包含的任何框架集頁面的window對象。經過引用window對象的parent屬性,就能夠訪問父window對象的各類屬性和方法,就像訪問當前頁面的window對象的各類屬性和方法同樣。此外,還能夠訪問在框架集頁面中定義的各類JavaScript變量和函數。 有這樣一種關係Top Window(fraMenu,fraMain(fraTop,fraBottom))包含關係。那麼,若是在fraBottom框架頁中,咱們要能過代碼訪問fraMenu框架頁的window對象,該怎麼辦?實際上,咱們經過window.parent.parent就能夠引用頂層窗口的window對象,而fraMenu框架頁又是頂層窗口的一個子對象。要訪問這個子對象,能夠採用3種方法,這3種方法有相同的效果。1.經過頂層窗口window對象的frames[]數組屬性訪問,其中fraMenu框架頁在frames[]數組的索引爲0;window.parent.parent.frames[0]. 2.也能夠把fraMenu框架頁的名稱做爲frames[]數組的索引;window.parent.parent.frames["frameMenu"] 3.還能夠直接經過fraMenu框架頁的名稱來引用fraMenu框架頁:window.parent.parent.fraMenu window對象的top屬性將直接返回一個對框架集中最頂層框架的引用。
window對象具備open()方法,用以打開一個新的瀏覽器窗口。該方法能夠接收3個參數。其中第3個參數是可選的。該方法將返回一個對新打開窗口的引用。第一個參數是要在新窗口中加載的頁面的URL,第二個參數是爲新窗口分配的名字。該名字並非在腳本中用以引用該窗口,而是用在某些HTML標記中做爲target屬性的值使用,如用在超連接或表單的target屬性中。如用在超連接或表單的target屬性中。如裝將窗口的第二個參數設置爲myWindow,並在原窗口的頁面上設置一個以下連接<a href="test3.html" target=myWindow>Test3.html</a> 那麼單擊時,test3.html頁面將加載在名爲myWindow的新窗口中。第三個參數爲指定新窗口width屬性和height屬性的值 var newWindow = window.open("test2.htm","myWindow","width=250,height=250");
爲新的瀏覽器窗口添加特性,經過第三個參數,能夠控制新窗口的特性,如新窗口的大小,新窗口在屏幕中的起始益,用戶是否能夠改變新窗口的大小,以及新窗口是否具備工具欄等,將相應的屬性設置爲yes或1時,將打開該屬性,將該屬性設置爲no或0時,將關閉該屬性,要將某個瀏覽器窗口的屬性設置爲yes打開,只需在window.open()方法的第三個參數中包含這個屬性的名稱便可,並不須要爲屬性指定屬性值。
前面咱們介紹過window.open()方法用以打開一個新窗口,並返回一個對新窗口的引用,咱們能夠訪問新窗口的屬性和方法,而且能夠訪問新窗口的document對象,若是把打開的新窗口的瀏覽器窗口稱爲源窗口,那麼如保在新窗口中訪問源窗口呢,在新窗口中訪問源窗口的window對象,關鍵是使用新窗口的opener屬性。opener屬性將返回一個對打開當前新窗口的源窗口window對象的引用。可使用以下代碼將源窗口背景色修改成紅色:window.opener.document.bgColor="red"; window.opener屬性的使用方法與在框架集中使用window.parent屬性和window.top屬性相似。
12.字符串操做
1》split()方法 此方法根據某種分割標誌將一個字符串拆分爲一個由子串組成的數組。拆分字符串的依據就是做爲參數傳入split()方法的分割標誌符,分割標誌符能夠是一個字符,也能夠是一個字符串。此方法結果返回一個數組,但最後一個元素是空字符串
2》replace方法將查找指定子串是否存在,當找到匹配的子串時,replace()方法將把匹配的子串替換爲咱們所設置的指定字符串。myString.replace("may","june")
3》search()方法用以在字符串中查找特定子串,若是子串被找到,則返回子串在字符串中的位置,不然返回-1.search()方法僅接收一個參數。即要在字符串中查找的子串。
4》match()方法與search()方法很是相似,不一樣之處在於,search()方法返回的是查找到子串的位置,而match()方法返回的是一個數組,該數組中的每個元素包含一個查找到的匹配子串。
13.正則表達式 在javascript中,正則表達式是經過RegExp對象來使用的,RegExp對象與String.Array相似,也是JavaScript中的內建對象。要建立一個新的RegExp對象,能夠採用兩種方法,最簡單的辦法是採用正則表達式字面值,以下面代碼: var myRegExp = /\b'|'\b/;其中斜槓(/)用於表示正則表達式的開始和結束。 另外一種方法是 var myRegExp = new RegExp("\\b'|'\\b"); 正則表達式具備三個特性: 1.g表示全局匹配,而不是默認的匹配第一個後就不查找了 2.i表示忽略字母的大小寫 3.m多行標記
正則表達式:特殊元字符
1.文本,數字和標點符號元字符
\d 0-9的任何數字 \D 任何非數字字符 \w 任何單詞字符,即A-Z,a-z,0-9之間的字符,以及下劃線字符 \W 任何非單詞字符 \s 任何空白字符,包含水平製表符,換行符,回車符,走紙符以及垂直製表符 \S 任何非空白字符 . 除了換行符(\n)以外的任何單個字符 [...]匹配位於方括號以內的任何一個字符 [^...]匹配除了方括號以內字符以外的任何字符
2.重複字符 表示位於重複字符以前的項或字符須要重複匹配的次數 {n} 前面的項重複n次 {n,}前面的項重複n次,或者n次以上 {n,m}前面的項至少出現n次,最多出現m次 ? 前面的項出現0次或1次 + 前面的項出現1次或屢次,但至少出現1次 * 前面的項出現0次或屢次
3.位置元字 符 用以設置正則表達式是匹配字符串開始位置的子串,仍是匹配結束位置的子串,或者匹配模式字符的分界線位置。
^ 該元字符表示匹配字符串的開始位置,或者匹配多行字符串每一行的開始位置,對於多行字符串(即包含回車符的字符串),在定義正則表達式的時候,須要設置多行標記m如/myreg ex/m
$ 該元字符表示匹配字符串的結束位置,或者匹配多行字符串每一行的結束位置。對於多行字符串(即包含回車符的字符串),在定義正則表達式的時候,須要設置多行標記m如/myreg ex/m
\b 該元字符匹配單詞的分界位置,本質上,單詞的分界位置就是位於一個單詞字符與一個非單詞字符之間的位置
\B 該元字符匹配單詞的非分界位置
4.正則表達式分組 在正則表達式中,圓括號是用以表示對模式字符串進行分組的元字符,圓括號中的表達式又稱爲一個子模式或子正則表達式。子模式將做爲一個總體進行匹配,而不是對子模式中的一部分進行匹配。
要引用與正則表達式分組相匹配的子串,可使用$符號,後跟分組的序號。以下所示的正則表達式:var myRegExp =/(\d)(\W)/g $1表示對第一個分組(\d)的引用,而$2表示對第二個分組(\W)的引用。另外,在這個正則表達式中,還設置了全局標誌g,以保證全部與模式相匹配的子串都被替換---而不只僅是替換第一個匹配的子串。 如想把 var myString = "1999,2000,2001";替換爲「the year 1999,the year 2000,the year 2001」 var myRegExp =/(\d{4})/g; myString = myString.replace(myRegExp,"the year $1");
14.在search()方法中全局匹配標記g不起做用。 String的match()方法與search()方法相似,兩個方法不一樣之處在於,search()方法返回的是子串被找到的位置,而match()方法則返回一個數組,該數組的每個元素包含一個與模式字符串相匹配的子串
15.時間,日期,定時器 咱們須要一種標準的時間值來表示不一樣地點的同一時間,這就是協調世界時(Coordinated Universal Time,UTC).它的前身是格林尼治標準時間(Greenwich Mean Time,GMT) JavaScript中的Date對象提供了許多方法以支持UTC時間。如setUTCHours()方法
一次性計時器,只須要使用window對象的setTimeout()方法 window.setTimeout("your javascript code",milliseconds_delay)第一個參數爲執行的代碼,第二個參數爲計時器延遲的時間,以毫秒爲單位,此方法返回一個數值即計時器ID要在計時器觸發前中止它,能夠用window.clearTimeout()方法,該方法僅接收一個參數,即由setTimeout()方法返回的惟一的計時器ID號 間隔性計時器,能夠用setInterval()方法和clearInterval()方法,與一次性計時器參數相似
16javaScript中常見的7種錯誤
1》變量未定義 2》大小寫敏感 3》不匹配的大括號 4》鏈接字符串時缺乏+號 5》賦值而不是相等 6》不匹配的圓括號 7》將方法誤認爲屬性,或者屬性誤認爲方法
17.使用cookie 使用cookie的關鍵在於使用document對象的cookie屬性,使用cookie屬性,能夠在JavaScript代碼中建立cookie,或者訪問cookie中的數據。
cookie字符串,當建立一個cookie時,須要建立一個cookie字符串,cookie字符串包含6個須要設置的子串:name(名稱),value(值),expires(過時時間),path(路徑)、domain(域)、secure(安全性),其中後4個子串是可先的。在cookie值字符串中,分號不能包含在值字符串中,由於在cookie字符串中將分號做爲不一樣部分的分隔符。cookie若是不設置過時時間,則默認瀏覽器關閉後失效,這也就是會話cookie
escape()函數和unescape()函數對特殊字符時行編碼和解碼。escape()函數能夠將非字母或數字字符轉換爲Latin-1字符集中對應的十六進制編碼,並在編碼以前加上一個百分號(%)字符。
18.DHTML IE瀏覽器中的事件 當在IE瀏覽器中觸發一個事件時,ie瀏覽器將產生一個全局對象event,該對象包含了與所觸發事件相關聯的數據。 event對象的type屬性將返回一個包含事件名稱的字符串,不管是IE瀏覽器仍是ff瀏覽器都支持type屬性,只是訪問type屬性的方法是不一樣的 window.event.type="" srcElement屬性是event對象所提供的另外一個很是有用的屬性,該屬性將返回接收當前事件的HTML元素。
其它瀏覽器事件對象 非IE瀏覽器並無跟蹤當前觸發事件的全局對象event,相反地,非ie瀏覽器須要web開發人員在代碼中將事件對象(event object)做爲參數,傳遞給事件處理器。該event參數包含了一個對當前事件對象的引用。 當某個事件被觸發時,知道該事件在哪個HTML元素上被觸發是很是有用的。對於IE瀏覽器來講,能夠經過srcElement屬性來引用觸發當前事件的HTML元素。但其餘瀏覽器並不支持該屬性,對於非ie瀏覽器,應該使用target屬性,該屬性於ie瀏覽器中的srcElement屬性同樣,用以引用接收當前事件的HTML元素
經常使用的CSS屬性 color前景色 如字體顏色 background-color 背景色 background-image:url背景圖片 font-family設置文本字體 font-size字體大小 font-weihgt:bold將文本以粗體顯示 font-style:italic將文本以斜體顯示 text-decoration:underline;爲文本加下劃線 visibility:hidden:隱藏元素 visible顯示出來 此屬性將出現空白區域 display:none 隱藏元素將從文檔流中去掉 block顯示出來inline按行佈局模式顯示
要使某個元素採用絕對定位只要將該元素的position屬性設置爲absolute要使某個元素採用相對定位,只需將該元素的position屬性設置爲relative便可,用於定位 元素的CSS關鍵屬性是left屬性和top屬性
使用javascript改變style對象屬性形式以下: oHtmlElement.style.cssProperty = value; 一般狀況下,某個CSS屬性的名稱與該屬性在CSS文件中的名稱是相同的如color,可是,在某些狀況下,CSS屬性的名稱與其在CSS文件中的名稱略有不一樣,包含一個連字符(-)的CSS屬性就是一個典型例外。對於包含一個連字符(-)的CSS屬性,須要去掉連字符,並把連字符以後的第一個字母改爲大寫形式。使用style對象來訪問元素的樣式屬性時,只能訪問到元素的內聯樣式屬性。對於在<style/>標記中的樣式屬性,則不能經過style對象來訪問
修改class屬性 oHtmlElement.className = sNewClassName;使用它來修改元素的樣式具備兩個好處,第一,它減小了須要編寫的javaScript代碼的數量,第二,能夠將元素的樣式設置從JavaScript代碼中抽取處理,放在獨立的CSS文件中。
移動元素 與使用style對象來設置元素樣式相似,使用js來移動元素,可使用position屬性來改變元素的定位方式(即相對定位或絕對定位),也可使用left和top屬性將元屬設置到指定的位置。 現代瀏覽器中的Dom模型暴露了HTML元素的offsetTop屬性和offsetLeft屬性。這兩個屬性將返回相對於父元素的位置偏移量。offsetTop屬性和offsetLeft屬性的返回值都是數值類型,所以,很容易檢查元素的當前位置是否位於動畫的移動路線上。
19.XHTML 實際HTML與XHTML存在一些不一樣,但XHTML並無在HTML中增長新的元素和屬性。下面幾點是XHTML與HTML的主要差異: 1.XHTML要求在頁面開始的第一行必須包含一個XML聲明,如<?xml version='1.0'?> 2.在頁面頂部還必須提供一個DTD聲明,並指出所引用的DTD標準的版本 3.在頁面中必須包括一個包含當前HTML元素的XML命名空間的引用 4.因爲xml是大小寫敏感的,所以全部的XHTML標記都必須使用小寫方式 5.在XHTML文檔中,必須包含<head>和</body>標記 6.任何一個標記都必須被封閉,全部標記必須正確地嵌套。當於單個標記而言,如換行標記,必須以一個斜線表示標記的結束,如<br/> 7.屬性的值必須用引號括起來 上面的這些規則確保了XHTML文檔中的各類元素具備一個嚴格的層次結構,從而保證了文檔對象模型可以正常地工做,這也是當前所使用的HTML的發展路線。
20.DOM
基本的dom對象
1. Node 文檔中的每個節點都是一個Node對象
2. NodeList 一個包含多個Node對象的數組,一般用來表示一個元素所包含的子節點
3. NameNodeMap 此對象創建了節點名稱和節點之間的一一映射關係,從而能夠利用節點名稱直接訪問節點 高級dom對象 節點能夠分爲元素節點,屬性節點,或純文本節點 Document 表示文檔的根節點 DocumentType xml文檔的dtd或schema的對象表現形式 DocumentFragment文檔碎片對象,它是一個不完整的document對象,主要用於暫時存放沒有加入Dom樹的文檔片斷 EntityReference 表示一個xml文檔中的實體引用 Element表示文檔中的一個元素 Attr 表示文檔中元素的一個屬性 ProcessingInstruction 表示一個處理指令 Comment 表示xml文檔或HTML文檔中的註釋 Text 表示構成元素子節點的純文本 CDATASection xml文檔中CDATA節的對象表現形式 Entity 表示DTD中定義的不解析實體 Notation體表在DTD中定義的記號
Document對象方法:返回一個元素或元素的集合 1.getElementById(idname)返回一個對文檔中指定id元素節點對象的引用 2.getElementsByTagName(tagname)返回一個對象數組,要引用集合中某一個特定的元素,還必須指定該元素在集合中的索引值,經過集合的item()方法,便可返回指定索引值的元素。
documentElement 返回對文檔最頂層元素的引用(即根元素,如<html/>元素)
Element對象僅包含一個屬性 tagName返回當前節點的標記名稱
Node對象的屬性:在文檔樹中導航 1.firstChild 返回元素子節點列表(childNodes)中的第一個節點 2.lastChild 返回元素子節點列表中的最後一個節點 3.previousSibling在同級子節點中,返回當前子節點的前一個兄弟節點 4.nextSibling 在同級子節點中,返回當前子節點的的後一個兄弟節點 5.ownerDocument返回包含當前節點的文檔的根節點 6.parentNode 返回樹結構中當前節點的父節點 7.nodeName 返回當前元素節點的名稱 8.nodeType 返回一個數字,表示當前節點的類型 文本節點3這對區別不一樣瀏覽器中使用頗有用 9.nodeValue 以純文本形式返回的當前節點的值 值得注意的是,對於Firefox,Opera和Safari瀏覽器,狀況有所不一樣,這幾個瀏覽器把HTML標記與標記之間的空白也視爲文本節點,所以對於Firefox,Opera和Safari瀏覽器,<body/>節點之下還包含了空白文本節點
Node對象的方法:添加和移除文檔中的元素 1.appendChild(newNode)將一個新節點newNode添加到子節點列表的末尾,該方法將返回一個對新插入節點對象的引用 2. cloneNode(cloneChildren)返回當前節點的一個副本,該方法接收一個布爾值做爲參數,若是該參數的值爲true,則克隆當前節點及其全部的子節點,若是該參數的值爲false,則僅克隆當前節點而不包含其子節點。 3.hasChildNodes()檢查當前節點是否含有子節點,若是有子節點,則返回一個true值 4.insertBefore(newNode,referenceNode)在指定的referenceNode節點以前,插入一個新節點newNode,該方法將返回一個對新插入節點對象的引用 5.removeChild(childNode)從node對象的子節點列表中,刪除由參數childNode指定的子節點,該方法將返回一個對全部刪除節點對象的引用 6.replaceChild(newChild,oldChild) 將參數oldChild指定的子節點替換爲參數newChild指定的新節點,該方法將返回一個對被替換節點對象的引用。
document對象的方法:添加和移除文檔中的元素
1.createElement(elementName)根據由elementName參數指定的標記名稱來建立一個新元素。該方法將返回一個對新建立元素的對象的引用 2.createTextNode(text)用參數text指定的文原本建立一個文本節點,並返回一個對新建立的文本節點的引用 。 3.createAttribute(attributeName)用參數attributeName指定的名稱來建立一個屬性,並返回一個對新建立屬性節點對象的引用。
element對象的屬性方法 1.getAttribute(attributeName)返回由參數attributeName指定的屬性的值 2.setArrtibute (attributeName,value)將attributeName屬性的值設置爲由參數value指定的值 3.remvoeAttribute(attributeName)移除attributeName屬性的值,並將其恢復爲默認值
event對象的屬性 1.bubbles 一個邏輯值,表示是否容許事件冒泡(即事件從一個底層元素向上傳遞給上一層元素) 2.cancelable 一個邏輯值,表示是否能夠取消事件的默認行爲 3.currentTarget 表示當前事件目前所指向的元素節點 4.eventPhase 一個表示事件流當前階段的數字值 5.target(僅對支持Dom的瀏覽器) 該屬性表示引起當前事件的元素對象,在Dom的事件模型中,文本節點也會觸發DOM中的事件 6.timeStamp(僅對Firefox瀏覽器) 表示事件發生的時間 7.type 表示當前事件的名稱 另外dom事件模型還引入了一個MouseEvent對象,該對象專門用以處理由鼠標操做所引起的各類事件。
MouseEvent對象的屬性 1.altKey 一個邏輯值,表示當事件發生時,Alt鍵是否被按下 2.button 對於鼠標事件,該屬性表示鼠標的哪個按鈕被按下 3.clientX 表示當事件發生時,鼠標指針在客戶端區域中的橫座標 4.clientY 表示當事件發生時,鼠標指針在客戶端區域中的縱座標 5.ctrlKey 一個邏輯值 ,表示當事件發生時ctrl鍵是否被按下 6.metaKey 一個邏輯值,表示當事件發生時,Meta鍵是否被按下 7.relatedTarget(僅對支持Dom的瀏覽器) 在Dom事件模型中,文本節點也可觸發mouseover事件,該屬性表示與事件相關的元素節點,相似於IE瀏覽器中的event.toElement屬性和event.fromElement屬性 8.screenX 表示當事件發生時,鼠標指針相對於計算機屏幕區域中的橫座標 9.screenY 表示當事件發生時,鼠標指針相對於計算機屏幕區域中的縱座標 10.shiftKey 一個邏輯值,表示當事件發生時,Shift鍵是否被按下
21.JavaScript與XML XSLT(Extensible Stylesheet Language Transformations,可擴展樣式轉換語言)將一個XML文檔格式化爲一個HTML文檔 xslt是一種基於模板的樣式轉換語言,它能夠將xml文檔中的內容進行從新構造,並轉換爲咱們所須要的格式。XSLT轉換能夠容許不一樣種類的應用程序交換數據。使用XSLT可使同一份源文檔生成多個不一樣的視圖,從而使Web站點的內容能夠在多種設備上顯示。
XSLT的轉換須要兩個文檔(一個是xml源文檔,另外一個xslt樣式表),轉換的結果將生成一個新的文檔。一般狀況下,轉換的結果是一個新的xml文檔或者HTML文檔