读《JavaScript dom编程艺术(第2版)》笔记 7-8

 

动态创建标记:

传统方法:document.write、innerHTML

document.write : 方法可以方便快捷地把字符串插入到文档里,但是缺点是违背了“行为应该与表现分离”的原则。即使把document.write语句挪到外部函数里,也还是需要在标记的<body>部分使用<script>标签才能调用那个函数。应该避免在<body>部分乱用<script>标签,避免使用document.write方法。

 

innerHTML:用来读、写某给定元素里的HTML内容。        

<div id="text">
<p>This is <em>my</em>content.</p>
</div>

 

                                                                                                          元素节点

div

                                                                                                 

<p>This is <em>my</em>content.</p>

                                                                                                            HTML

就innerHTML属性来看,id为text的标记里面只有一个值为<p>This is <em>my</em>content.</p>的HTML字符串。

innerHTML属性是HTML专有属性,不能用于任何其他标记语言文档。

DOM方法:createElement、appendChild、createTextNode

createElement :创建一个元素节点 ,语法:document.createElement(nodeName)   eg:document.createElement("p");创建一个p元素。

appendChild :插入节点, 语法:parent.appendChild(child)

createTextNode :创建文本节点 ,语法:document.createTextNode(text)  eg:document.createTextNode("Hello world!");就会创建一个内容为”Hello World“的文本节点  。

insertBefore :将一个新元素插入到一个现有元素的前面 , 在调用这个方法时,必须得知三件事:1、新元素:你想插入的元素(newElement)  2、目标元素:想把这个新元素插入到哪个元素(targetElement)之前  3、父元素:目标元素的父元素(parentElement)   语法:patentElement.insertBefore(newElement,targetElement)   我们不必搞清楚父元素到底是哪个,因为targetElement元素的parentNode属性值就是它。  属性节点和文本节点的子元素不允许是元素节点

在现有元素后插入一个新元素:DOM中没有这个方法,但是我们可以写出这个函数  

function insertAfter(newElement,targetElement){
   var parent=targetElement.parentNode;
   if(parent.lastChild==targetElement){
     parent.appendChild(newElement);
    }else{
     parent.insertBefore(newElement,targetElement.nextSibling);
   }
}

 

nextSibling:相同层的下一个节点,即下一个兄弟节点

 

<abbr>缩略语,它是对单词或短语的简写形式的统称。

<acronym>单词,首字母缩写词。

eg:如果把DOM念成一个单词dom,他就是一个首字母缩写词;如果把它念成D-O-M三个字母,就是一个缩略语。

在html5中<acronym>标签已被<abbr>标签代替。

XHTML中所有标签都必须闭合,对诸如<img>和<br>之类的孤立元素也不例外:在书写时他们必须有一个反斜线字符表示标签结束:即<img/>和<br/>这样。注意为了与早期的浏览器保持兼容,应该再反斜杠字符的前面保留一个空格。

若要使用XHTML DOTYPE,应该再文档开头:

  <!DOCTYPE html

   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

  "http://www.w3.org/TR/xhtml1-strict.dtd">

HTML5的文档类型声明,对应默认的为标准模式

for/in循环:   for(variable in array)  把某个数组的下标赋给一个变量   =>array[variable]

blockquote元素包含一个属性cite,这是一个可选属性,给他一个url地址,告诉人们blockquote元素的内容引自哪里。

accesskey属性,可以把一个元素(如链接)与键盘上的某个特定按键关联在一起,eg:<a href="index.html" accesskey="1">HOME</a>

在适用于windows系统的浏览器里,快捷键的用法是在键盘上同时按下alt键和特定按键;在适用于mac系统的浏览器里,快捷键的用法是同时按下ctrl键和特定按键。

<!DOCTYPE html>  这个文档声明同样也支持HTML和XHTML标记。

 

posted @ 2015-04-23 23:45  木槿の瑶  阅读(129)  评论(0编辑  收藏  举报