JavaScript学习(读DOM编程艺术)

DOM

D

       Document文档

       DOM将 document的网页文档转换为一个文档对象

O

       Object对象

        JS中的三种对象:

                     用户定义对象      user-defined object  由程序员自行创建的对象

                     内建对象              nativeobjcet            JS自带的对象 如 Array Data Math等

                     宿主对象              hostobject               由浏览器提供的对象

                       宿主对象最基础的是window对象,

Window对象        对应着浏览器窗口本身,这个对象的属性和方法通常称为BOM(浏览器对象模型),或者称为Window Object Model(窗口对象模型)

                                   window.open():打开一个新的浏览器窗口或查找一个已命名的窗口

                                   window.blur();方法可把键盘焦点从顶层窗口移开

M

       Model模型/Map地图

       某种事物的表现形式

DOM工作模式

       先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。

       这正是DOM的真正威力

              对页面内容进行刷新却不需要再浏览器里刷新页面

节点

元素节点              <div><p> <img>等元素为元素节点

文本节点              元素节点包含的文本为该元素节点的文本节点

属性节点              元素节点包含的属性为该元素节点的属性节点

<ul id=”a”>

    <li>text</li>

</ul>

 

ul li 为元素节点

<li>text</li>ul的文本节点

text 为li的文本节点

 

id=”a”ul的属性节点

兼容全浏览器 getElementsByClassName

function getElementsByClassName(node,classname)

{

    if(node.getElementsByClassName)

    {

        return node.getElementsByClassName(classname);

    }

    else

    {

        var result=new Array();

        var arrElems=node.getElementsByTagName(*);

        for(var i=0;i<arrElems.length;i++)

        {

            result[result.length]=arrElems[i];

        }

        return result;

    }

}

RegExp("\\b" + tag + "\\b", "i")
love 卡拉ok
这个字符串里有4个单词边界,分别是:“love”的前面和后面,“卡拉ok”的前面和后面
就是每个单词的起始和结束

获取和设置属性

getAttribute

object.getAttribute(attribute);

getAttribute不属于document对象,只能通过节点元素调用

setAttribute(隶属于第一级 DOM)

  创建属性

 object.setAttribute(attribute,value);

       细节

              通过setAttribute对文档做出修改后,再通过浏览器的view source选项去查看文档的源码时看到的仍将是改变前的属性值,也就是说,setAttribute做出的修改不会反映在文档本身的源代码里,与DOM工作模式有关

案例研究:JAVASCRIPT图片库

编写一个优秀的标记文件

编写一个由JavaScript函数以显示用户想要查看的图片

由标记触发函数调用

使用几个新方法扩展这个JavaScript函数

标记

setAttribute与DOM修改属性的区别

setAttribute

l  可以随意修改任何一个元素的任何一个属性

l  移植性好,可应用在web浏览器以外的应用环境


 

 

事件函数处理

<li>

<ahref="img/14913773541298520.jpg" οnclick="showPic(this);returnfalse;">

我特么A

</a>

</li>

functionshowPic(whichpic){

    var sSrc=whichpic.getAttribute("href");

    var oImg=document.getElementById("placeholder");

    oImg.setAttribute("src",sSrc);

    //oImg.src=sSrc;

}

工作机制:

       在给某元素添加了事件处理函数后,一旦事件发生,相应的JavaScript代码就会得到执行。被调用的JavaScript代码可以返回一个值,这个值被传递给那个事件处理函数。

例如:

       我们可以给某个链接添加一个onclick事件处理函数,并让这个处理函数所触发的JavaScript代码返回bool值true or false。这样一来,当这个链接被点击时,如果那段JavaScript代码返回值是true,onclick事件处理函数就认为“这个链接被点击了”,反之则认为没有。

 

childNodes

子节点集

object.childNodes

l  包括节点类型

       元素节点,文本节点

l  排序

1.    先元素节点中的文本节点再元素节点

2.    从上到下按顺序的子节点排序

nodeType

       nodeType一共有12个值,但仅有3个有实用价值

元素节点的nodeType值为1

属性节点的nodeType值为2

文本节点的nodeType值为3


 

nodeValue

       <p id="description">Choose an image</p>

    元素节点<p>的第一个节点node.childNodes[0]/node.firstChild为文本节点

    node.childNodes[0].nodeValue可设置/获取节点值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值