JS DOM 第八章-充实的文档内容

8.1 不应该做什么

       如果你察觉到自己正在使用DOM技术把一些重要的内容添加到网页上,应该立刻停止并检讨思路,因为很有可能你正在滥用DOM。

       两个原则:1、渐进增强;2、平稳退化。

8.2 内容

<!DOCTYPE html>
<html lang = "en">
	<head>
		<meta charset = "utf-8"/>
		<link rel ="stylesheet" media = "screen" href = "styles/8.css"/>
		<title>Explaining The Document Object Model</title>
	</head>
	<body>
		<h1>What Is The Document Object Model?</h1>
		<p>
		The <abbr title = "World Wide Web Consortion">W3C</abbr> defines the 
		<abbr title ="Document Object Model">DOM</abbr> as:
		</p>
			<blockquote cite = "http://www.w3.org/DOM/">  
		<p>
		A platform and language-neutral interface that will allow programs and scripts to 
		dynamically access and update the content,structure and style of documents.
		</p>
		</blockquote>
		<p>
		It is an <abbr title = "Application Programming Interface">API</abbr>
		That can be used to navigate<abbr title = "HyperText Markup Language">
		HTML</abbr> and<abbr title ="Extensible Markup Language"> XML</abbr> documents.
		</p>
	//	<script src = "scripts/addLoadEvent.js"></script>
	//	<script src = "scripts/displayAbbreviations.js"></script>
	</body>
</html>

   效果如图

    优化一下,这样HTML文件有点太复杂,我们想把abbr标签的内容,拎出来,用一个页面集中显示。比如利用DOM在body中添加如下代码

    <dl>
	<dt>W3C</dt>
	<dd>World Wide Web Consortium</dd>
	<dt>DOM</dt>
	<dd>Document Object Model</dd>
	<dt>API</dt>
	<dd>Application Programming Interface</dd>
	<dd>HTML</dd>
	<dd>HyperText Markup Language</dd>
	<dt>XML</dt>
	<dd>Extensible Markup Language</dd>
    </dl>
    displayAbbreviations.js

function displayAbbreviations(){
	if(!document.getElementsByTagName||!document.createElement
	||!document.createTextNode) return false;
 	var abbreviations = document.getElementsByTagName("abbr");  //获取abbr标签;
	if(abbreviations.length < 1) return false;
	var defs = new Array();  //创建数组,用以存储key 和 definition;
	for(var i = 0 ;i<abbreviations.length;i++){      
		var current_abbr = abbreviations[i];  
		var definition = current_abbr.getAttribute("title"); //取definition
		var key = current_abbr.lastChild.nodeValue; //取key 
		defs[key] = definition; // 对应存储
	}
	var dlist = document.createElement("dl");
	for(key in defs){
		var definition = defs[key];   
		var dtitle = document.createElement("dt");
		var dtitle_text = document.createTextNode(key);
		dtitle.appendChild(dtitle_text);
		var ddesc = document.createElement("dd");
		var ddesc_text = document.createTextNode(definition);
		ddesc.appendChild(ddesc_text);
		dlist.appendChild(dtitle);
		dlist.appendChild(ddesc);
	}
	var header = document.createElement("h2");    
	var header_text = document.createTextNode("Abbreviations");  //创建小标题
	header.appendChild(header_text);
	document.body.appendChild(header);  //标题添加到body标签;
	document.body.appendChild(dlist);   //dlist添加到body标签;
}
addLoadEvent(displayAbbreviations);
    最终效果


    很难看,不是嘛。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值