基本型別
使用函式
分支指令
重複指令
Number
String
Array
Object
Boolean
var square=function(n){
return n*n
}
function increase(n){
return n+1
}
console.log("%c囧囧囧囧囧","font-size:72px;")
console.log(square(9))
if
if-else
if-else if-else
switch-case
while
for
do-while
文件物件模型
Document Object Model
一個文件的結構化表示法
document
element
nodeList
attribute
namedNodeMap
網頁內容的進入點
可以全域存取
由DOM的API回傳的元素或節點
構成DOM
裝著element的陣列
可以從中取出節點
從屬於element
表示element的屬性
裝著element的無序集合
可由名稱或索引取得元素
使用DOM之前讓JS能在HTML中運作
HTML只是標記語言不能執行
JavaScript是程式語言可以執行
將JS放在HTML裡要另外標記
將JS視為HTML中的內容
<script>alert("hello, world")</script>
要用<script>包起來才能執行
要用此方法才可以引入外部的JS程式碼
<script src="../lib/js/head.min.js"></script>
這裡的<script>標籤中間不能有東西
function loadScript(url)
{
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
head.appendChild(script);
}
真的是有夠麻煩...
DOM到底可以如何操作咧?
可由window.document或document取得
裏面裝了網頁所有的東西
對其節點操作可以改變網頁內容
document.domain
document.URL
document.baseURI
document.title
也可以設定標題
document.title="JASS"
然後標題就真的變了很不方便
100和14差86
手很壯
document.createAttribute(attr)
document.createElement(tag)
document.createTextNode(text)
document.getElementById(id)
document.getElementsByName(name)
document.getElementsByTagName(name)
document.getElementsByClassName(name)
var n=document.getElementById("nekomimi")
var h=document.getElementsByTagName("h6")[0]
var x=document.getElementsByClassName("x86")[0]
var a=document.getElementsByName("armstrong")[0]
對取得的元素進行操作
許多的Element組成了Document
一個標籤就是一個Element
element.textContent
element.innerHTML
element.style
element.attributes
n.textContent
h.innerHTML
x.style
a.attributes
DOM是以樹狀結構表達
裏面的元素也是以樹狀結構存在
可以操作元素附近的東西
父節點
平輩節點
子節點
"You are someone's son"
element.parentNode
element.parentElement
注意上層有可能是Document而非Element
document.body.parentNode
document.body.parentElement
document.documentElement.parentNode
document.documentElement.parentElement
和自己屬於同個樹狀階層
element.nextSibling
element.nextElementSibling
element.previousSibling
element.previousElementSibling
想想隔壁有可能是文字或是註解
x.nextElementSibling
x.nextSibling
x.nextSibling.nextSibling
x.nextSibling.nextSibling.nextSibling
element.childNodes
element.children
element.childElementCount
element.firstChild
element.firstElementChild
element.lastChild
element.lastElementChild
var data=document.getElementById("expdata");
data.firstChild
data.firstElementChild
data.lastChild
data.lastElementChild
element.appendChild()
element.removeChild()
element.replaceChild()
var thispage=document.getElementById("thispage")
var newH1=document.createElement("h1")
var text=document.createTextNode("ㄈ十 ㄈ艸 ㄈ卉")
thispage.appendChild(newH1)
newH1.appendChild(text)
thispage.removeChild(newH1)
對元素的屬性進行操作
標籤裏面的等號配對就是Attribute
由名稱和數值構成
標籤後面的等號配對就是Attribute
attr.name
attr.value
attr.isId
attr.specified
n.attributes[0].name
n.attributes[0].value
n.attributes["style"].isId
n.attributes["style"].specified
element.getAttribute(name)
element.setAttribute(name,value)
element.hasAttribute()
直接看看如何操作吧
超連結
var thisa=document.getElementById("thisa")
thisa.getAttribute("target")
thisa.setAttribute("href","https://www.google.com.tw")
function loadScript(url)
{
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
head.appendChild(script);
}
有沒有忽然能看懂意思了?
DOM當然不只這樣
還有CSS和Event