DHTML

DHTML

DHTML:Dynamtic HTML 动态的html (这个动态指的是动态变化)
DHTML不是一门新的技术,而是将已有的HTML,CSS,JS整合在一起,实现了通过JS访问元素和css属性。
在DHTML中,是通过JS访问html元素或者css属性,使得页面具有动态的变化,从而和用户具有了交互的行为。

 function changeDiv()
        {
            /*获取div元素*/
            var div=document.getElementById("div1");//div对象表示这个元素
            /*改变div的宽度,高度,边框,背景色 字体大小、颜色*/
            div.style.width="100px";
            div.style.height="100px";
            div.style.border="5px solid red";
            div.style.background="pink";
            div.style.fontSize="2em";
            div.style.color="white";
        }

工作原理

在DHTML中,将所有html元素都使用一个一个的js对象表示
通过对象来表示html元素,通过对象之间的包含关系,来表示元素之间的层级关系、
通过调用对象的属性和方法,来间接改变元素的属性和行为。
通过这种方式使得JS可以访问html元素和css属性,让页面具有动态的变化和用户具有了交互行为。


DHTML工作原理

可以将DHTML分为两部分内容:
1BOM浏览器对象模型:和window浏览器窗口相关对象
2DOM文档对象模型:和html文档相关的对象
蓝色为文档树,用树表示文档,文档树里全是对象,用对象表示元素,用对象之间的关系表示元素的上下级关系或者层级关系。
红色为BOM对象

BOM

browser object model 浏览器对象模型
提供了一套操作浏览器的api

window

代表浏览器中一个打开的窗口
1window对象的常用方法
(1)alert();--定义一个消息对话框

        /*window对象*/
        window.alert("alert");

(2)confirm();--定义一个确认对话框

        /*window对象*/
        var res=window.confirm("Confirm please!");
        if(res)
        {
            alert("confirm success!");
        }
        else{
            alert("be canceled!");
        }

(3)setInterval();--定义一个循环定时器,清除定时器clearInterval()

        /*循环定时器*/
        setInterval(function(){
            document.write(new Date().getTime()+"<br/>");
        },1000);
        var i=0;
        var timer=setInterval(function(){
            document.write(new Date().getTime()+"<br/>");
            i++;
            if(i==3)clearInterval(timer);
        },1000);

(4)setTimeout();--定义一个一次性定时器,清除定时器clearTimeout()

        setTimeout(function(){
            document.write("TimeOut"+"<br/>")
        },1000);

2window对象的常用事件

winow.onload()

在js获取元素时,如果获取元素的代码元素被浏览器加载的时机还要,此时是获取不到元素的。
这里我们可以等待整个html文档加载之后再执行获取元素的代码,就一定能够获取得到。

    <script>
      /*在浏览器加载完整个html文档之后立即执行*/
        window.onload= function () {
            //1.获取div元素
            var div=document.getElementById("div1");
            //2.通过div元素获取div中的所有内容
           alert(div.innerHTML);
        };
    </script>

<body>

<div id="div1">获取div中的所有内容。。。</div>
</body>

DOM

document object model 文档对象模型
提供了一套操作html元素和css属性的api
表单项元素才有value

获取html元素

1.通过元素的id获取元素

(1)document.getElementById(id值);-通过元素的id值获取指定的id元素
(2)元素.value:获取或设置元素的value值

    function demo1(){
        //1.获取用户名输入框元素(input元素)
        /*
        * input value值就是输入框中的内容
        * select value值就是选中的option的value值或option的值
        * textarea value值就是输入框中的内容
        */
        var inp=document.getElementById("username");
        //2.获取用户名输入框的value值
        alert(inp.value);
                inp.value="李四";
    }
    
2.通过元素的name获取元素

(1)document.getElementsByName(name属性值);-通过元素的name属性值获取指定name的所有元素,返回的是一个集合数组(可以按照数组的方式来访问)

    /* --通过name属性获取并弹出密码输入框的值-- */
    function demo2(){
        //1.获取密码输入框元素
        var arrInps=document.getElementsByName("password");
        var inp=arrInps[0];
        //2.通过密码输入框获取其中的值
        alert(inp.value);
    }
3.通过标签名称或元素名称获取元素

(1)document.getElementsByTagName(tagName);通过元素名称获取指定名称的集合数组

    function demo3(){
        //1.获取所有input元素组成的集合数组
        var arrInps=document.getElementsByTagName("input");
        //2.遍历所有的input元素,并获取其value值
        for(var i=0;i<arrInps.length;i++){
            alert(arrInps[i].value);
        }
    }
4.获取元素或设置元素

innerHTML:获取或设置元素的所有内容(既包含html元素也包含文本内容)
innerText:获取或设置元素的文本内容(仅仅是文本)

    function demo4(){
        /*表单元素的value 元素的内容*/
        //1.先获取p元素
        var p=document.getElementById("pid");
        //2.通过p元素获取p元素中的所有内容  innerHTML(所有内容) innerText(所有文本内容)
        alert(p.innerHTML);
        alert(p.innerText);
        p.innerHTML="<a href='#'>替换内容</a>";
        p.innerText="<a href='#'>替换内容</a>";
    }

增删改html元素

1创建元素
创建一个指定名称的元素
document.createElement(tagName)
2添加元素
通过父元素调用方法添加子元素
父元素.appendChild()
3删除元素
通过父元素添加方法删除已有的子元素
父元素.removeChild(子元素)
4替换元素
通过父元素调用方法使用新元素替换已有的子元素
父元素.replaceChild(新元素,旧子元素)
5克隆或复制元素
obj.cloneNode();
6插入元素
父元素.insertBefore()

js动态绑定事件

document.getElementById("b1").onclick=function(){};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352