Javascript
數組(包括對象)
var ballArray=new Array("basketball","football","pingpong");
for(var b in ballArray)
document.write(ballArray[b]+"<br/>");
一個不知錯對的冒泡
<script type="text/javascript">
var numArray=new Array(10,7,9,1,3,2,5,8,6,4,11,13,12,14,15,18,17,16);
var flag=0;
for (var i=0;i<numArray.length&&flag==0;i++)
{ flag=1;
for (j=0;j<numArray.length-1;j++)
{
if(numArray[i]<numArray[j])
{
temp=numArray[i];
numArray[i]=numArray[j];
numArray[j]=temp;
flag=0;
}
}
}
for (var n in numArray)
document.write("數"+numArray[n]+"<br/>");
</script>
產生10之內的隨機整數
parseInt(Math.random()*10)
一個按鈕關閉窗口,按鈕上的字是value
<input type="button" value="close" onclick="window.close();">
函數體內的變量爲局部,函數外的爲全局,做用域爲整個html文檔
定義一個空對象
var phone=new Object();
javascript的構造函數居然就是一個同名函數
如
function Dog(x,y,z)
{
this,name=x;
this.color=y;
this.weight=z;
}
var dogA=new Dog("花花","黑色",50);
var dogB=new Dog();
dogB.name="多多";
dogB.color="黃色";
甚至直接定義對象的屬性,難道不用構造函數
var dog=new Object();
dog.name="花花";
dog.color="黑色";
對象的方法能夠這樣定義:
function callName()
{
alert(this.name);
}
function Dog(x,y,z)
{
this.name=x;this.color=y;this.weight=z;
this.call=callName;即將callName掛到了對象的call方法上
}
訪問對象屬性除了用.還能夠用[]這個能夠按鍵訪問,能夠操做
如Dog屬性有name1,name2,name3,便可以dogA["name"+i]訪問
with(dogA)
{
在此訪問,不用加對象名和.
}
for(var i in dogA)
{
document.write(i);此處顯示的i爲對象的屬性及方法名
}
for(var j in dogA)
{
document.write(dogA[j];此處顯示的爲對象屬性的值和方法的內容
}
數據驗證
form的onsubmit="return flase"能夠阻止提交
能夠寫一個function
onsubmit="return check(this);"其中 check再來返回邏輯值
建議把函數的js放到<head>中
能夠用載入方法加入js
<script language="javascript" src="menu_data.js"></script>
正則表達式又忘了,複習一下
"s單個空格(包括tab和換行) "S互補
"d數字
"w字母數字下劃線 "W互補
^尖頭 $錢尾
/"bAAA/ /AAA"b/ "b兩頭 "B中間
又一個javascript書
定義數組
var objArray=new Array();建立一個空的
var objArray=new Array(2);建立一個長度爲2的數組,但不能建立只有2的數組
var objArray=new Array("2","a","b");建立並初始化
又一方法(初始化方法)
var objArray=[];建立一個空的
var objArray=[2];建立一個只有2的數組
var objArray=["a","b","c"];建立並初始化
String對象的match(regExp)匹配正則表達式的方法
如:
while(!str.match(/"d+/))當不爲數字時
關於事件
function imgClick(img)
{
alert(img.src);
}
<img src="1.jpg" onclick="imgClick(this)"/>
在官官相護沒有標記的對象如window,document
這些的方法直接傳函數名
document.onclick=imgClick;不要加()之類,或加引號都不對
Ctrl+回車提交表單
var txtContent=document.getElementById("txtContent");
txtContent.onkeydown=function(evt){
evt=evt?evt:window.event;兼容性
if(evt.ctrlKey&&13==evt.keyCode)this.form.submit();
}
遍歷複選框
for (var i=0;i<theForm.elements.length;i++)
{
if("checkbox"==theForm.elements[i].type)
//處理語句
}
經過id引用結點
document.getElementById("span1");
經過tag name來引用結點,返回數組
document.getElementByTagName("span");
獲取結點內的文本,一般用innerHTML屬性
<span id="span1">hello</span>
以下取:
document.getElementById("span1").innerHTML;
亦可用結點的辦法
documnet.getElementById("span1").childNodes[0].nodeValue
注:nodeValue只對文本結點有效
建立元素結點
var _table=document.createElement("table");建立一個表格
_table.setAttribute("border","1");設置表格的屬性
建立文本結點
_td=documnet.createElement("td");
_tn=document.createTextNode("內容");
_td.appendChild(_tn);將文本做爲td的子節點
_tr.appendChild(_td);將_td放入tr的子節點
能夠用兩層循環來產生一個表格
以上IE不行,tr用insertRow(i),td用insertCell(i)才行
刪除一行
_table.deleteRow(i)
刪除一列
則要循環每一行來刪除列i=0;i<_table.rows.length
_table.rows[i].deleteCell(j);