美文网首页
我与JS的那些陈年旧事(二)

我与JS的那些陈年旧事(二)

作者: 一只96年的程序猿 | 来源:发表于2018-08-12 23:06 被阅读0次

DHTML概述

1.DHTML:Dynamic HTML

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

2.工作原理

(1).在DHTML中,将所有的html元素都使用一个一个的JS对象来表示

(2).通过对象来表示html元素, 通过对象之间的包含关系, 来表示元素之间的层级关系

(3).可以通过调用对象的属性或方法, 来间接改变元素的属性和行为


1.BOM

  • Window对象

代表浏览器中一个打开的窗口

(1).window对象的常用方法
//(1) alert(); -- 定义一个消息对话框
window.alert("哈哈哈");

//(2) confirm(); -- 定义一个确定对话框
var res = window.confirm("您确定要删除该订单吗?");
if(res){
    alert("订单删除成功!");
}else{
    alert("操作已取消!");
}

//(3) setInterval(); -- 定义一个循环定时器,
    //chearInter(); -- 清除定时器
var i = 0;
var timer = setInterval(function(){
    console.log(new Date().getTime());
    i++;
    if(){
     clearInterval(timer);   
    }
},3000);

//setTimeout(); -- 定义一个一次性定时器
setTimeout(function(){
    console.log("Hello...");
},2000);
(2).window对象的常用事件

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

<!DOCTYPE html>
<html lang="en">
<head>
    <script>
      /* 在浏览器加载完整个html文档后执行*/
      window.onload = function(){
          //1.获取div元素
          var div = document.getElementById("div1");
          //2.通过div元素获取div中所有内容
          console.log(div.innerHTML);
      }
    </script>
</head>
<body>
    <div id="div1">
        获取div中的所有内容...
    </div>
</body>
</html>

DOM

  • 获取html元素

(1).通过元素的ID获取元素
  • document.getElementById(id值) – 通过元素的ID值获取指定ID的元素 </br>
  • value属性 – 获取或设置元素的value值
/* --通过ID获取并弹出用户名输入框的值
    input    value值就是输入框中的内容
    select   value值就是选中的option的value值option的内容
    textarea value值输入框中的内容
-- */

function demo1(){
    //1.获取用户名输入框元素(input元素)
    var inp = document.getElementById("username");
    //2.获取用户名输入框的value值.
    alert( inp.value );
}
(2).通过元素的name属性获取元素
  • document.getElementsByName(name属性值): 通过元素的name属性值获取指定name的所有元素组成的集合数组
/* --通过name属性获取并弹出密码输入框的值-- */
function demo2(){
    //1.获取密码输入框元素
    var arrInps = document.getElementsByName("password");//集合数组
    var inp = arrInps[0];//密码输入框元素
    //2.通过密码输入框获取其中的值
    alert( inp.value );
}
(3).通过元素名称/标签名称获取元素
  • document.getElementsByTagName(tagName): 通过元素的名称获取指定名称的元素组成的集合数组
/* --通过标签名获取并返回所有input元素的value值-- */
function demo3(){
    //1.获取所有的input元素组成的集合数组
    var arrInps = document.getElementsByTagName("input");
    //2.遍历所有的input元素,并获取其value值
    for(var i=0;i<arrInps.length;i++){
       console.log( arrInps[i].value );
    }
} 
(4).innerHTML,innerText
  • innerHTML:获取或设置元素的所有内容(既包含html元素也包含文本内容)
  • innerText:获取或设置元素的文本内容(仅仅是文本)
function dom(){
    //1.获取p元素
    var p = documnet.getElementById("pid");
    //2.通过p元素获取p元素中的所有内容
    //alert( p.innerHTML );
    //alert( p.innerText );
    //p.innerHTML = "<a href='#'>我是来替换的..</a>";
    p.innerText = "<a href='#'>我是来替换的..</a>";
}
  • 增删改html元素

(1).创建元素、添加元素
  • ==document.createElement(tagName)==:创建一个指定名称元素
  • ==parent.appendChild(child)==:通过父元素调用方法添加子元素
function addNode(){
    //1.创建一个div元素
    var div = document.createElement("div");
    
    var color = ["red","green","blue","cyan"];
    var index = parseInt(Math.random()*4);
    div.style.backgroundColor = color[index];
    div.innerHTML = "我是新来的";
    //2.获取父元素(body)
    var body = document.body;
    //3.通过父元素添加子元素
    body.appendChild(div);
}
(2).删除元素
  • ==parent.removeChild(child)==:通过父元素调用方法删除已有的子元素
/* --删除节点: 删除body中id值为 div_3 的div元素-- */
//parentNode
function deleteNode(){
    //1.获取将要被删除的元素
    var div_3 = document.getElementById("div_3");
    //2.获取body元素
    //var body = document.body;
    var body = div_3.parentNode;

    //3.通过父元素删除子元素
    body.removeChild( div_3 );
}
(3).替换元素
  • ==parent.replaceChild(new, child):== 通过父元素调用方法使用新元素替换已有的子元素
/* --更新节点: 用新节点替换id值为 div_2 的div元素  -- */
function updateNode(){
    //1.创建一个新的div元素
    var newDiv = document.createElement("div");
    newDiv.innerHTML = "我是替换的div...";
    //2.获取要被替换的元素
    var div2 = document.getElementById("div_2");
    //3.获取body元素
    var body = document.body;
    //4.通过父元素调用替换方法
    body.replaceChild(newDiv, div2);
}
(4).克隆/复制元素,插入元素
  • obj.cloneNode();
  • parent.insertBefore(new,chlid);
/* --克隆节点、插入节点到指定元素的前面--*/
function copyNode(){    
     //1.获取div_4元素
     var div = document.getElementById("div_4");
    //2.克隆div_4
    //true/1表示克隆元素全部内容,不写/0表示仅克隆元素
    var div_copy = div.cloneNode(true);
    //3.获取body元素
    var body = document.body;
    //4.获取div_2元素
    var div_2 = document.getElementById("div_2");
    //5.插入到div_2元素前面
    body.insertBefore(div_copy,div_2);
    }

相关文章

  • 我与JS的那些陈年旧事(二)

    DHTML概述 1.DHTML:Dynamic HTML DHTML不是一门新的技术,而是将已有的HTML、css...

  • 我与JS的那些陈年旧事(一)

    JavaScript概述 全称JavaScript,简称JS. JS是一门基于对象和事件驱动的脚本语言,专门为网页...

  • 我与JS的那些陈年旧事(三)

    JQuery概述 JQuery:JavaScript Query(Js查询) 它是一个轻量的, 免费开源的JS函数...

  • 我与父亲的那些陈年旧事

    父亲离开我们已经23年了,但我依然会常常梦到他,梦中的他依旧穿着那件旧的已经看不出颜色的比卡其褂子,那褂子...

  • 我与父亲的那些陈年旧事

    父亲离开我们已经23年了,但我依然会常常梦到他,梦中的他依旧穿着那件旧的已经看不出颜色的比卡其褂子。那褂子父亲穿的...

  • 那些陈年旧事

    小时候跟妈妈在菜市场碰到了语文老师。天气很热,看到她一手提一袋菜,头发凌乱的在菜市走来走去。看到她站在一个摊子前,...

  • 那些陈年旧事

    听妈妈说过,我刚出生的时候长得很漂亮。乡里邻里都喜欢过来瞧我一眼。刚出生的时候90年代,到处闹饥荒。坦白说父母还是...

  • 那些陈年旧事

    一不小心睡了一个小时,这是春困么? 也不知道什么时候养成的习惯,每天到了中午就困,必须睡上一会儿,哪怕15分钟呢,...

  • 陈年旧事(二)

    我也不知道是发生了什么情况,好像同桌对我抱有一丝敌意,甚至觉得老师都有些看不起我的样子 我被分到的是最后一...

  • 陈年与旧事

    喜欢是藏不住的,捂住了嘴巴,眼睛却撒不了谎。眼底的满心欢喜,神采奕奕,像黑夜里的光,再细微,都是耀眼的。 陈年的青...

网友评论

      本文标题:我与JS的那些陈年旧事(二)

      本文链接:https://www.haomeiwen.com/subject/ofiebftx.html