javascript学习笔记 (二)-DOM

 

HTML DOM

图片翻转效果
< img src = " button_off.gif "
   onmouseover
= " this.src='button_over.gif'; "
   onmousedown
= " this.src='button_down.gif'; "
   onmouseout 
= " this.src='button_off.gif'; "
   onmouseup  
= " this.src='button_over.gif'; " >

动态的添加移除页面上的联系人
  
  var  inputs  =   0 ;
 
function  addContact(){
    
var  table  =  document.getElementById('contacts');

    
var  tr     =  document.createElement('TR');
    
var  td1    =  document.createElement('TD');
    
var  td2    =  document.createElement('TD');
    
var  td3    =  document.createElement('TD');
    
var  inp1   =  document.createElement('INPUT');
    
var  inp2   =  document.createElement('INPUT');

    
if (inputs > 0 ){
        
var  img      =  document.createElement('IMG');
        img.setAttribute('src', '
delete .gif');
        img.onclick 
=   function (){
            removeContact(tr);
        }
        td1.appendChild(img);
    }

    inp1.setAttribute(
" Name " " Name "   + inputs);
    
// same as   element.name="elementName"
    inp2.setAttribute( " Name " " Email " + inputs);

    table.appendChild(tr);
    tr.appendChild(td1);
    tr.appendChild(td2);
    tr.appendChild(td3);
    td2.appendChild(inp1);
    td3.appendChild(inp2);

    inputs
++ ;
}
function  removeContact(tr){
    tr.parentNode.removeChild(tr);
}

< table >
   
< tbody id = " contacts " >
      
< tr >
         
< td colspan = " 3 " >< a href = " javascript:addContact(); " > Add a Contact </ a ></ td >
      
</ tr >
      
< tr >
         
< td ></ td >
         
< td > Name </ td >
         
< td > Email </ td >
      
</ tr >
   
</ tbody >
</ table >

我们可以利用childNodes访问子元素,childNodes返回当前元素的子元素数组.也可以用firstChild和lastChild属性访问.

设置表格行显示交替颜色
function  setColors(tbody, color1, color2){
    
var  colors   =  [color1, color2];
    
var  counter  =   0 ;
    
var  tr       =  tbody.firstChild;

    
while (tr){
        tr.style.backgroundColor 
=  colors[counter ++   %   2 ];
        tr 
=  tr.nextSibling;
// returns the next element in the DOM with the same parent as the current element.
    }
}

function  setColors(tbody, color1, color2){
    
var  colors   =  [color1, color2];

    
for ( var  i = 0 ; i < tbody.childNodes.length; i ++ ){
        tbody.childNodes[i].style.backgroundColor 
=  colors[i  %   2 ];
    }
}

function  setColors(tbody, color1, color2){
    
var  colors   =  [color1, color2];
    
var  trs      =  tbody.getElementsByTagName('TR');

    
for ( var  i = 0 ; i < trs.length; i ++ ){
        trs[i].style.backgroundColor 
=  colors[i  %   2 ];
    }
}

getElementsByTagName:返回一个数组,包含具有相同tag名的所有元素

处理文本
页面中的每段文本都被压缩在一个隐藏的#text node中
< div id = " ourTest " > this  is  < a href = " link.html " > a link </ a >  and an image:  < img src = " img.jpg " ></ div >

具有4个根元素 一个文本节点"this is" 一个具有子节点值为"a link"的节点 另外一个文本节点"and an image:" 一个图片元素
改变"and an image:"值
document.getElementById('ourTest').childNodes[ 2 ].nodeValue  =  'our  new  text';

访问"a link"值
document.getElementById( " ourTest " ).childNodes[ 1 ].childNodes[ 0 ].nodeValue;

加div中加入新的文本内容
var  newText  =  document.createTextNode('our  new  text');
var  ourDiv   =  document.getElementsById('ourTest');
ourDiv.insertBefore(newText, ourDiv.childNodes[
1 ]);

insertBefore接收两个参数:待添加的元素和现有的元素 将待添加的元素添加到现有元素的前面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值