今天在群里看到Javascript问题时,由于好长一段时间没有接触DOM,结果导致DOM的方法写错了,真是丢脸,还好脸皮本来就是厚。不过,为了不能连续在同一个地方错两次,觉得有必要全面复习下js和DOM,并写下总结,方便以后回顾。 首先,数据类型方面,变量不像C#那样使用string、int等,都是用var来定义赋值,特别是数组。 PS:如果用了var关键字,就表示这个变量是个局部变量,反之,就是个全局变量;全局变量采取先来后到原则。 eg:var shuzu=Array();shuzu["zero"]="first";shuzu["one"]="second";//当然可以在括号里写上数组的长度,数组的下表也是从0开始。 var id=Array("1","2","3","4"); shuzu["one"]=id[2];//将shuzu数组中下标为"one"的元素赋值给id数组的第3个元素。 var id=Array();id[0]=shuzu; //将shuzu数组的值都赋值给id[0];==》 id[0]["zero"]="first";id[0]["one"]="second"; 算术: var sum="10"+20; // sum="1020"; 数据类型还有个 对象,为对象创建新实例和C#相似,使用new 关键字。 var obj=new duixiang; obj.property; obj.method();//一个为属性,一个为方法; var id=new Array();//数组也是js内建对象,使用new来初始化数组,就是创建一个Array的新实例; //待补充 下面是DOM: Dom主要有3种节点:元素节点、属性节点、文本节点,对应的nodetype分别为1、2、3; 元素节点:、

  • 等所有的节点(???)。 属性节点:title、 name、 id等。 文本节点:eg:

    谁包含着我谁就是文本节点

    DOM属性 node.childNodes;node.childNodes[0]<===>node.firstChild ;node.lastChild //childNodes:遍历父元素,查找子元素,返回一个数组 node.nodeType;node.nodeValue//检索节点的值,

    的第一个子节点的值才是文本内容 可以使用firstChild.nodeValue; nodeName //总是返回大写字母 node.parentNode //与childNode相反,返回父节点对象的引用指针 previousSibling //返回一个给定节点的下一个子节点对象的引用指针 onclick事件 onclick="method(para);return false"//点击链接时,只执行js的方法,而返回false,被认为是没被点击; element.onclick=function(){return method(this);} 弹出窗口 window.open(url,name,features)//3个属性都是可选的,可以通过第2个参数来和新窗口通信,第3个参数定义新窗口的属性; 搜狐 //this.href 意思就是获取当前节点的href的值 if(!document.getElementById) { //对当前浏览器是否支持DOM进行检查,也可使用其他的DOM方法 return false; } function method(){!#$!#@$@#$@} window.onload=method;//绑定方法到onload事件处理函数上 window.onload=function(){firstMethod();secondMethod();}//绑定多个方法到onload事件处理函数上 function addevent(method)//检测是否已经绑定函数!若没,则把新函数赋值给它,若有,则将新函数添加到现有函数的末尾; {var oldonload=window.onload;if(typeof window.onload !='function'){window.onload=method;} else{window.onload=function(){oldonload();method();}}} onkeypress事件//尽量不用这个事件 DOM方法: document.getElementsById(value) //返回节点id=value的对象 getElementsByTagName(tagname) //返回 setAttribute(attribute,value) getAttribute(attribute) hasChildNodes//返回一个bool值,判断该父节点是否有子节点 eg:var getid=document.getElementById("value"); var tag=getid.getElementByTagName("*");//tag数组包含id值为value的无序清单的元素," * "为通配符; getElementsById 和getElementsByTagName 这个大小写得注意,一个都不能错; document.getElementsByTagName("body) <===>document.body HTML-DOM: document.getElementByTagName("form") <====> document.form element.getAttribute("src") <====> element.src element.setAttribute("src",url) <====> element.src=url document.write("

    Content

    "); createTextNode(Content)//创建新文本节点 createElement(element)//创建新元素 cloneNode(bool)//这个方法的参数为true或false,true则返回一个包含子节点的新节点的引用指针,false则不包含子节点 parent.appendChild(child)//在父节点那插入子节点 parent.removeChild(node)//删除该节点的一个子节点 parent.replaceChild(newChild,oldChild)//替换oldChild为newChild parentElement.insertBefore(newElement,targetElement)//将一个新元素插入到目标元素之前 function insertAfter(new Element,targetElement){ //编写与insertBefore相对应的insertAfter函数 var parent = targetElement.parentNode;//提取目标元素的parentNode属性值到变量中; if (parent.lastChild==targetElement){//检查目标元素是不是parent的最后一个子元素 parent,appendChild(newElement);//如果是,那么用appendChild()将新元素追加到parent上,这样新元素就处于目标元素的后面 }else{ parent.insertBefore(newElement,targetElement,nextSibling);}} //如果不是,则用insertBefore将新元素插入到目标元素的nextSibling(即下个元素)之前; eg: 在testid那插入一段话"This Content is a test" 使用innerHTML写法 window.onload=function() //简单,但是由于innerHTML是IE的专利,所以自己看着办吧 { var testid=document.getElementById("testid"); testid.innerHTML="

    This Contentis a test

    "; } 使用正式Dom写法 window.onload=function(){var para=document.creatElement("p"); var txt1=document.createTextNode("This"); var emce=document.createElement("em"); var txt2=document.createTextNode("Content"); var txt3=document.createTextNode("is a test"); para.appendChild(txt1);emce.appendChild(txt2); para.appendChild(emce);para.appendChild(txt3); var testid=document.getElementById("testid"); testid.appendChild(para);} js其他函数 setTimeout("method",interval)//在interval个毫秒后,执行method这个方法; parseInt(string)//将string里包含的数值给提取出来,不过数值是整数 parseFloat(string)//同上,不过数值是浮点的; 类似于watermark性质的函数resetFields function resetFields(whichform){ for(var i=0;i

posted on 2007-08-03 11:34  gerdy  阅读(1120)  评论(0编辑  收藏  举报