第八章 熟练dom的几个常用方法

显示“缩略词语”


  • <abbr> 标签指示简称或缩写,比如
<abbr title="World Wide Web Consortium">W3C</abbr>
  • <acronym> 标签定义首字母缩写。HTML5中已经不支持该标签。建议用<abbr>标签代替。
  • ”定义表“(<dl>)由一系列“定义标题”<dt>和相应的“定义描述”<dd>构成。
  • for/in循环

它的独特之处是可以把某个数组的下标键字临时赋值给一个变量:for(variable in arry)

<h1 >What is the Document Object Model?</h1>
<p>
    The <abbr title="World Wide Web Consortium">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 HTML and XML documents.
</p>

从上面的html文件提取<abbr>,用js显示一个缩略词语表,结构如下图:

js文件如下:

/*编写displayAbbr函数*/
function displayAbbr(){

if (!document.getElementsByTagName || !document.createElement || !document.createTextNode) return false;

var abbr = document.getElementsByTagName("abbr")
if (abbr.length<1) return false; //检查是否有<abbr>

var defs = new Array();
for (var i=0; i<abbr.length; i++){
    var abbrTitle = abbr[i].getAttribute("title");
    var key = abbr[i].lastChild.nodeValue;//提取<abbr>标签里的缩略词语

    //abbrTitle和key这两个变量的值保存到defs数组里,其一用作数组下标键字,另一个用作数组元素的值:
    defs[key] = abbrTitle;
}

/*创建HTML内容*/
var dlist = document.createElement("dl");

//用一个for/in循环去遍历defs数组:
for (key in defs){
    var abbrTitle = 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(abbrTitle);
    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);
document.body.appendChild(dlist);

}
window.onload = displayAbbr;

最后效果图示:

显示“文献来源连接”


  • continue

continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。
可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。

  • <blockquote>:定义块引用,<blockquote> 与 </blockquote> 之间的所有文本都会从常规文本中分离出来,经常会在左、右两边进行缩进(增加外边距),而且有时会使用斜体。 <q>元素标记短的引用。
  • 该标签含属性cite,可选。用途是给出一个url地址告诉我们引用的来源。主流浏览器均忽视 cite 属性的存在,用户是无法看到的。利用js+dom,我们可以让它显示在网页上。
/*显示文献来源*/
/*编写displayCite函数*/
function displayCite(){
    if (!document.getElementsByTagName || !document.createTextNode || !document.createElement) return false;

    var quotes = document.getElementsByTagName("blockquote");
    for(var i=0; i<quotes.length; i++){
        if(!quotes[i].getAttribute("cite")){
            continue;  //判断是否有cite属性
        }

        var url = quotes[i].getAttribute("cite");
        var quoteChildren = quotes[i].getElementsByTagName("*");//取得当前blockquote元素里所有元素点
        if (quoteChildren.length<1) continue;

        var elem = quoteChildren[quoteChildren.length-1]; //取得blockquote元素里的最后一个元素点

        var link = document.createElement("a");
        var link_text = document.createTextNode("source");
        link.appendChild(link_text);
        link.setAttribute("href",url);

        //用sup元素节点包装link,呈现上标效果
        var sup = document.createElement("sup");
        sup.appendChild(link);

        elem.appendChild(sup);
    }
}
window.onload = displayAbbr;

时间: 2024-09-30 06:15:15

第八章 熟练dom的几个常用方法的相关文章

使用JavaScript操作DOM节点元素的常用方法(创建/删除/替换/复制等)

getElementById(id)这是通过id来访问某一元素,最常用的之一,例:<html><body><div id="myid">test</div><script language="javascript">alert(document.getElementById("myid").innerHTML);</script></body></html&

dom操作节点之常用方法

DOM:获取节点:{1. document.getElementById (元素id):通过元素id找到节点2. document.getElementsByClassName (元素类名className): 通过class类名找到节点,返回的是一个集合3. document.getElementsByTagName (标签名):通过标签名找到节点,返回一个集合 标签名:如<a>\ <p>\ <div> ....4. document.getElementsByNam

javascript dom编程艺术 第2版

W3C 推出了标准化的DOM, 就是我们现在常用方法, 比如获取一个元素:document.getElementById(id) 语法用JavaScript编写的脚本,都是由一系列指令构成,这些指令叫做语句(statement). 只要按照正确的语法编写出来的语句才能得到正确的解释.JavaScript 每条语句以换行符或分号视为结束. 如下为两条语句:first statementsecond statement也可以放在一行:first statment; second statment;建

初识 HTML5(一)

H5其实就是H4的一个增强版本,我们在利用H5进行网页的构造会更简便,标签语义更简洁明了.首先,我们要理解HTML4,它是HTML的标记+css2+JavaScript的一些基本应用,简言之,就是API+语法:而H5无非就是在原先的基础上面提供了一些新的功能. 1.H5的语义标签 1):html 的定义 ,它的一个文档声明 <!DOCTYPE html>  语法跟html4 差不多,w3c 提供了一个网站可以用来检测html 的语法.  https://validator.w3.org/ 2)

HTML学习笔记(JavaScript)NO.4

JavaScript语句向浏览器发出命令.语句的作用是告诉浏览器该做什么其中分号,语句之间的分割是分号,注意:分号是可选项,有时候看到不以分号隔开的. JavaScript是按照编程顺序执行的 标识符: JavaScript标识符必须以字母.下划线或美元符号开始 JavaScript的关键字是不能使用的 JavaScript对大小写非常敏感 JavaScript会忽略多个空格的情况 JavaScript的变量: 变量是存储信息的"容器"如:var x=10: 数据类型 string.n

初识 HTML5

初识 HTML5(一) H5其实就是H4的一个增强版本,我们在利用H5进行网页的构造会更简便,标签语义更简洁明了.首先,我们要理解HTML4,它是HTML的标记+css2+JavaScript的一些基本应用,简言之,就是API+语法:而H5无非就是在原先的基础上面提供了一些新的功能. 1.H5的语义标签 1):html 的定义 ,它的一个文档声明 <!DOCTYPE html>  语法跟html4 差不多,w3c 提供了一个网站可以用来检测html 的语法.  https://validato

10.10-全栈Java笔记:Apache IOUtils和FileUtils的使用

JDK中提供的文件操作相关的类,功能非常基础,进行复杂操作时需要做大量编程工作.实际开发中,往往需要你自己动手编写相关的,尤其在遍历目录文件时,经常用到递归,非常繁琐. Apache-commons工具包中提供了FileUtils,可以让我们非常方便的对文件和目录进行操作. 本文就是让大家对FileUtils类有一个全面的认识,便于大家以后开发文件和目录相关功能. Apache IOUtils和FileUtils类库为我们提供了更加简单.功能更加强大的文件操作和IO流操作功能.非常值得大家学习和

javaWeb常用技术语法总结

HTML: 1.html:超文本标记语言. 标记(标签.节点): <标记名>标记内容(标记体)</标记名称> 九成双标记 个别单标记 2.html文件写法和基本结构: 3.常用标记.p/div/span/ul/ol/center/b/i/sub/sup/a 4.表格:网页布局 table thead tbody th td tr 5.表单:手机客户信息. form:name/method/action 表单元素:input:type=text/password/readio/che

jquery类数组结构学习笔记

大家都知道我们使用$()产生的jquery对象可以使用下标去获取对应下标的元素. 举个栗子,一个页面有5个div标签,我们使用$("div")去获取到这些元素,然后我们就可以使用$("div")[0]去获取到这个元素集合的第一个元素. 但是jquery并不是一个数组对象,那我们为什么可以使用下标去获取元素呢?查看jquery源码中的init方法,可以看到以下代码(这是我简化版的写法,省略了与该文章不相干的代码): function Jquery() { this[0