第五节(HTML DOM (文档对象模型)事件、节点)

    HTML DOM 允许 JavaScript 改变 HTML 元素的内容
  改变 HTML 输出流
  JavaScript 能够创建动态的 HTML 内容:
  在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容:  document.write(Date());
  改变 HTML 内容
修改 HTML 内容的最简单的方法时使用 innerHTML 属性, 如需改变 HTML 元素的内容 
 语法 :  document.getElementById(id).innerHTML = new HTML ;
  document.getElementById("p1").innerHTML="New text!";
<div id="test">
    
    <p id="t_one">中山学院</p>
    <p id="t_two">软件工程</p>

</div>
<script type="text/javascript"> // 创建一个新的p标签元素 var p = document.createElement("p"); // 创建文本的节点 var node = document.createTextNode("中山学院"); // 在p元素后边追加文本节点 p.appendChild(node); // 获取test这个元素的对象 var test = document.getElementById("test"); // 向test元素追加新元素 test.appendChild(p); // 删除已经存在的html元素 var t = document.getElementById("test"); var pp = document.getElementById("t_two"); t.removeChild(pp); </script> </body>
<body>

    <div id="txt" onmouseover="changeBackground();" onmouseout="bak();"></div>

<script type="text/javascript">
    
    function changeBackground(){
        document.getElementById("txt").style.background = "red";
    }

    function bak(){
        document.getElementById("txt").style.background = "#690";
    }


</script>

</body>
  HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应

 一. 对事件做出反应
 
  我们可以在事件发生时执行 JavaScript,当用户在 HTML 元素上点击时。如需在用户点击某个元素时执行代码,请向一个 HTML 事件属性添加 JavaScript 代码 。

  <1> 点击元素时: <p onclick="this.innerHTML='Ming太帅了 ! '">Javascript HTML DOM</p>
  
  <2> 从事件处理器调用一个函数:
  <script> function changetext(id) { id.innerHTML="Ming"; }  </script>
  <p onclick="changetext(this)">点这里</p>

  <3> HTML 事件属性 :  <button onclick="displayDate()">点击这里</button>
  <4> 使用 HTML DOM 来分配事件
  向 button 元素分配 onclick 事件: document.getElementById("myBtn").onclick=function(){displayDate()};
        <style type="text/css">
            *{margin:0;padding:0;}
            #txt{300px;height:100px;background:#690;margin:120px auto;cursor: pointer;}
        </style>

<body>

    <div id="txt" onmousedown="an()" onmouseup = "fang()"></div>

<script type="text/javascript">
    
    // 首先当点击鼠标按钮时,会触发 onmousedown 事件
    function an(){
        document.getElementById("txt").style.background = "yellow";
    }
    function fang(){
        document.getElementById("txt").style.background = "#690";
    }
</script>
</body>
onload 和 onunload 事件

  onload 和 onunload 事件会在用户进入或离开页面时被触发。
  onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
  onload 和 onunload 事件可用于处理 cookie。

  例:  <body onload="checkCookies()">

  onchange 事件
  onchange 事件常结合对输入字段的验证来使用。当用户改变输入字段的内容时,会调用函数

  例  :  实战

  onmouseover 和 onmouseout 事件: 可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数 

<script type="text/javascript">
            function message(){
                alert("欢迎您 光临小店 ,我是店小二为您服务 !");
            }
        
            function bb(){
                alert("欢迎下次再来!!");
            }    
        </script>

    </head>
<body onunload="bb();">
</body>
 
 click事件
  
  onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。
  首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件
  最后,当完成鼠标点击时,会触发 onclick 事件

  onload
  onfocus
  鼠标事件

<style type="text/css">
            *{margin:0;padding:0;}
            #txt{300px;height:100px;background:#690;margin:120px auto;cursor: pointer;}
        </style>

    </head>
<body>

    <div id="txt" onmousedown="an()" onmouseup = "fang()"></div>

<script type="text/javascript">
    
    // 首先当点击鼠标按钮时,会触发 onmousedown 事件
    function an(){
        document.getElementById("txt").style.background = "yellow";
    }
    function fang(){
        document.getElementById("txt").style.background = "#690";
    }

</script>

</body>

//////////////////////////////////////////////////////


<body>

    请输入文字:<input type="text" onfocus="myFocus();" id="text"/> <br /><br />
    
    请输入文字(另一种写法):<input type="text" onfocus="myFocus01(this);"/>
    <script type="text/javascript">
        function myFocus(){
            document.getElementById("text").style.background = "red";
        }

        // 
        function myFocus01(t){
            t.style.background = "red";
        }
    </script>
</body>
 click事件
 
  onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。
  首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件
  最后,当完成鼠标点击时,会触发 onclick 事件

  onload
  onfocus
  鼠标事件

<style type="text/css">
            *{margin:0;padding:0;}
            #txt{300px;height:100px;background:#690;margin:120px auto;cursor: pointer;}
        </style>

    </head>
<body>

    <div id="txt" onmousedown="an()" onmouseup = "fang()"></div>

<script type="text/javascript">
    
    // 首先当点击鼠标按钮时,会触发 onmousedown 事件
    function an(){
        document.getElementById("txt").style.background = "yellow";
    }
    function fang(){
        document.getElementById("txt").style.background = "#690";
    }
</script>
</body>

//////////////////////////////////////////////////////

<body>

    请输入文字:<input type="text" onfocus="myFocus();" id="text"/> <br /><br />
    请输入文字(另一种写法):<input type="text" onfocus="myFocus01(this);"/>
    <script type="text/javascript">
        function myFocus(){
            document.getElementById("text").style.background = "red";
        }
        // 
        function myFocus01(t){
            t.style.background = "red";
        }
    </script>
</body>
<select onchange="myChange(this)">
    <option value="0">--请选择月--</option>
    <option value="1">1月</option>
    <option value="2">2月</option>
    <option value="3">3月</option>
    <option value="4">4月</option>
    <option value="5">5月</option>
</select>


<script type="text/javascript">
    function myChange(val){
        alert(val.value);
    }
</script>
</body>
document常用方法

document.write() //动态向页面写入内容
document.createElement(Tag) //创建一个html标签对象
document.getElementById(ID) //获得指定ID值的对象
document.getElementsByName(name) //获得指定name值的对象
document.body.appendChild(oTag)

//////////////////获取ID
<body>
    <input type="text" id="username" value="124"/>

    <div id="tm_div"><span>如何获取div的值呢?innerHTML/innerText<b>我是一个加粗的</b><span></div>
    <span id="tm_span">如何获取span的值呢?</span>
    <p id="tm_p">如何获取span的值呢?</p>
    <a href="javascript:void(0);" id="tm_link">点击我?</a>


    
    <script type="text/javascript">
        //操作网页上的标签元素就使用document.

        //什么是document 文档对象模式(Document Object Model)---DOM
        //写方法和定义的时候严格区分大小写
        //id选择器:唯一标识符
        //方法:document.getElementById(元素的id)根据id获取对象
        //.value只有form元素才有意义
        var value = document.getElementById("username").value;
        //获取div.span等其他元素(p,label,em,span,div,h1-h6 a table td tr)
        //获取值得方式是:innerText(纯文本)/innerHTML(带有格式的文本)
        var divText = document.getElementById("username").innerText;
        alert("innerText的值:"+divText);
        var divHTML = document.getElementById("username").innerHTML;
        alert("innerHTML"+divHTML);
        var divText = document.getElementById("username").outerText;
        alert("outerText的值:"+divText);
        var divHTML = document.getElementById("username").outerHTML;
        alert("outerHTML的值:"+divHTML);
        
    </script>
 </body>

1:<body>
  
  <input type="checkbox" name="hobbys" value="爬山">爬山
  <input type="checkbox" name="hobbys" value="音乐">音乐
  <input type="checkbox" name="hobbys" value="读书">读书
  <input type="checkbox" name="hobbys" value="游泳">游泳
	
  <script type="text/javascript">
	//document.getElementsByName:只是用含有name元素的标签.如果input
	var divObj = document.getElementsByName("hobbys");
	divObj[2].value = "睡觉";
	//value/innerText/innerHTML/outerText/outerHTML

  </script>
 </body>
/////////////////////////////////////////////////////////////////////////////
2::
 <body>
  <div class="tm_div">123</div>
  <div class="tm_div">234</div>
  <div class="tm_div2">234</div>
  
	
  <script type="text/javascript">
	//document.getElementsByName()
	//document.get(获取) Elements(元素)  By(通过)  TagName(标签)(tagName)通过
	//document.getElementsByTagName(tagName)通过标签名获取当前标签对象,返回数组
	
	var objArr = document.getElementsByTagName("div");
	//alert(objArr.length);//输出3

	tm_getClass("tm_div","444444444444444");
	

	function tm_getClass(className,html){
		var arr = [];
		for(var i=0;i<objArr.length;i++){
			if(objArr[i].getAttribute("class")==className){
				arr.push(objArr[i]);
			}
		}
		for(var i=0;i<arr.length;i++){
			arr[i].innerHTML = html;
		}
	}
	
  </script>
 </body>

////////////////////////////////////////////////////////
3:
 <body>
 <input type="text" id="username" username="ming"/>
 <div id="tm_div"></div>
  <script type="text/javascript">
	/*
		
		1:dom.getAttribute(key);//获取标签元素属性对应属性值
		dom.setAttribute(key,value);//为标签元素添加属性和属性值
		属性=属性值如:id="tm_div" type="text" name="username"
		2:如果是元素自身由w3c提供元素属性是可以直接通过当前dom对象本身获取
		如:document.getElementById("username").id
		document.getElementById("username").type
		document.getElementById("username").name
		document.getElementById("username").style
	*/
	var inputDom = document.getElementById("username");
	var username = inputDom.getAttribute("username");
	inputDom.setAttribute("age",20);
	alert(inputDom.getAttribute("age"));//输出20
  </script>
 </body>

  



原文地址:https://www.cnblogs.com/Deng1185246160/p/4238175.html