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);