JavaScript由瀏覽器編譯運行
JS的導入方式有兩種,一種直接定義,第二種通過src引入;可以存放在<head>頭部,但是強烈建議放在<body>的最下面,因為如果你引入外部的JS樣式很久都不能出來,會影響到用戶體驗。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script> alert('123') </script> </head> <body> <script> alert('456') </script> <script src="commons.js"></script> </body> </html>
JS的變量定義,有var表示局部變量,只能在函數體內被識別,沒有var表示全局變量,哪里都可以使用。
<body> <script> function f1(){ i = 123 } f1(); alert(i); </script> </body>
利用JS實現的跑馬燈效果:
<body> <div id = "i1" style="display: inline-block;background-color: green;color: white">歡迎寶強蒞臨指導</div> <script> setInterval("f1()",1000); function f1(){ var tag = document.getElementById('i1'); var text = tag.innerText; // alert(text); var a = text.charAt(0); var sub = text.substring(1,text.length); var new_str = sub + a; tag.innerText = new_str; } </script> </body>
JS的序列化
dic = {'k1':'123','k2':456}
Object {k1: "123", k2: 456}
dic_str = JSON.stringify(dic) //將字典轉換為字符串
"{"k1":"123","k2":456}"
dic_str
"{"k1":"123","k2":456}"
dic_new = JSON.parse(dic_str) //將字符串轉為字典
Object {k1: "123", k2: 456}
dic_new
Object {k1: "123", k2: 456}
JS之encode和decode,針對於URL使用
<script> var site = "http://www.baidu.com?王寶強"; var site_url = encodeURI(site); console.log(site_url); var site_de = decodeURI(site_url); console.log(site_de); </script>
執行結果:
http://www.baidu.com?%E7%8E%8B%E5%AE%9D%E5%BC%BAs3.html:13
http://www.baidu.com?王寶強
JS之escape和unescape針對字符串進行轉義,譬如在cookies的使用中
JS之函數的分類
<script> //普通函數 setInterval('f1()',2000) function f1(){ alert('123') } </script> <script> //匿名函數,調用的過程中不使用函數名 setInterval(function(){ alert('123'); },2000) </script> <script> //自執行函數,分為兩部分,前面是函數,后面是傳遞的參數()()。 (function(args){ alert(args); })(123) </script>
JS的作用域
<body> <script> xo = "alex"; function func(){ var xo = "eric"; function inner(){ console.log(xo); } xo = "severn"; return inner; } var ret = func(); ret(); </script> </body>
執行結果:
severn
搜索框的實現:
<body> <div> <input id="i1" type="text" value="請輸入關鍵字" onfocus="Focus();" onblur="Blur();" /> <!--<input id="i2 " type="text" onblur="blur();">--> </div> <script type="text/javascript"> function Focus(){ var tag = document.getElementById('i1'); if (tag.value == "請輸入關鍵字"){ tag.value = ""; } } function Blur(){ var tag = document.getElementById('i1'); if (tag.value.trim().length == 0){ tag.value = "請輸入關鍵字"; } } </script> </body>
模態對話框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body{
margin: 0;
}
.hide{
display: none;!important;
}
.shade{
position: fixed;
top:0;
bottom: 0;
left: 0;
right: 0;
background-color: aquamarine;
opacity: 0.6;
z-index: 1000;
}
.modal{
height: 200px;
width: 400px;
background-color: darkorange;
position: fixed;
top: 50%;
left: 50%;
margin-left: -200px;
margin-top: -100px;
z-index: 1001
}
</style>
</head>
<body>
<div style="height: 2000px;background-color: #F1F1F1;">
<input type="button" value="點我" onclick="Click()"/>
</div>
<div id="shade" class="shade hide"></div>
<div id="modal" class="modal hide">
<input type="button" value="取消" onclick="DeClick()"/>
</div>
<script>
function Click(){
var t1 = document.getElementById("shade");
var t2 = document.getElementById("modal");
t1.classList.remove("hide");
t2.classList.remove("hide");
}
function DeClick(){
var t1 = document.getElementById("shade");
var t2 = document.getElementById("modal");
t1.classList.add("hide");
t2.classList.add("hide");
}
</script>
</body>
</html>
用JS實現checkbox選擇框的選擇

<body>
<table border="1 solid red" id="tb">
<input type="button" value="全選" onclick="CheckALL()"/>
<input type="button" value="取消" onclick="CancelALL()"/>
<input type="button" value="反選" onclick="ReverseALL()"/>
<tr>
<th>標題1</th>
<th>標題2</th>
<th>標題3</th>
</tr>
<tr>
<td><input type="checkbox"/></td>
<td>內容2</td>
<td>內容3</td>
</tr>
<tr>
<td><input type="checkbox"/></td>
<td>內容2</td>
<td>內容3</td>
</tr>
<tr>
<td><input type="checkbox"/></td>
<td>內容2</td>
<td>內容3</td>
</tr>
</table>
<script>
function CheckALL(){
var tb = document.getElementById("tb");
var tbchild = tb.children;
var trs = tbchild[0].children;
for (var i=1;i<trs.length;i++){
var current_tr = trs[i];
var ck = current_tr.firstElementChild.firstElementChild;
ck.checked = true;
// ck.setAttribute("checked","checked");
}
}
function CancelALL(){
var tb = document.getElementById("tb");
var tbchild = tb.children;
var trs = tbchild[0].children;
for (var i=1;i<trs.length;i++){
var current_tr = trs[i];
var ck = current_tr.firstElementChild.firstElementChild;
if(ck.checked) {
ck.checked = false;
// ck.removeAttribute("checked");
}
}
}
function ReverseALL(){
var tb = document.getElementById("tb");
var tbchild = tb.children;
var trs = tbchild[0].children;
for (var i=1;i<trs.length;i++){
var current_tr = trs[i];
var ck = current_tr.firstElementChild.firstElementChild;
if (ck.checked){
ck.checked = false;
}else{
ck.checked = true;
}
}
}
</script>
</body>
JS實現的點贊功能:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .item{ padding:50px; position: relative; } .item span{ position: absolute; top: 50px; left:74px; opacity: 1; font-size: 24px; } </style> </head> <body> <div class="item"> <a onclick="Favor(this)">贊1</a> </div> <div class="item"> <a onclick="Favor(this)">贊2</a> </div> <div class="item"> <a onclick="Favor(this)">贊3</a> </div> <div class="item"> <a onclick="Favor(this)">贊4</a> </div> <script> function Favor(ths){ console.log(ths); console.log(ths.parentElement); var top = 50; var left = 74; var op = 1; var fontSize = 24; var tag = document.createElement("span"); tag.innerText = '+1'; tag.style.position = 'absolute'; tag.style.top = top +'px'; tag.style.left = left +'px'; tag.style.opacity = op; tag.style.fontSize = fontSize +'px'; ths.parentElement.appendChild(tag); // function ftime(){ // top -= 10; // left += 10; // op -= 0.1; // fontSize += 10; // // tag.style.top = top +'px'; // tag.style.left = left +'px'; // tag.style.opacity = op; // tag.style.fontSize = fontSize +'px'; // // if (op <= 0){ // console.log("KKKK") //// clearInterval(interval); //// ths.parentElement.removeChild(tag); // } // } // setInterval('ftime()',50); var interval = setInterval(function(){ top -= 10; left += 10; op -= 0.1; fontSize += 10; tag.style.top = top +'px'; tag.style.left = left +'px'; tag.style.opacity = op; tag.style.fontSize = fontSize +'px'; if (op <= 0){ clearInterval(interval); ths.parentElement.removeChild(tag); } },50) } </script> </body> </html>
JS定時器一次執行:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id = "status" style="color:red"></div> <input type = "submit" onclick="DeleteStatus()" value="刪除"/> <script> function DeleteStatus(){ var s = document.getElementById("status"); s.innerText ="刪除成功"; setTimeout(function(){ s.innerText = ""; },5000) } </script> </body> </html>
JS之返回頂部
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> .back{ position: fixed; right: 20px; bottom: 20px; } .hide{ display: none; } </style> </head> <body onscroll="BodyScroll()"> <div style="height: 2000px;background-color: aquamarine" ></div> <div id="back" class="back hide" onclick="BackTop()" style="cursor: pointer;color: crimson">返回頂部</div> <script> function BackTop(){ document.body.scrollTop = 0; } function BodyScroll(){ var s = document.body.scrollTop; var t = document.getElementById("back"); if (s >= 100){ t.classList.remove("hide"); }else{ t.classList.add("hide"); } } </script> </body> </html>
