[JS]JS查漏补缺

JavaScript会用,但是一直没有去系统的了解一下细节,下面是工作中遇到的一些以前不知道的细节东西,一一记录下来。

1. <a href="http://www.baidu.com" onclick="clickme();return false;">点我</a>

假如在onclick属性中不加入return false,那么它会在执行完clickme()函数后跳转到baidu.com;加入语句它只会执行函数而不会跳转。

2. 对各函数绑定到一个事件

现在定义三个函数 A(), B(), C(), 都要将他们绑定到onclick事件上,

*.onclick = A(), *.onclick = B(), ...

这样实际上最后一个绑定的函数灰覆盖前面的函数,这个时候我们可以使用匿名函数来解决这个问题:

*.onclick = function() {

  A();

  b();

  C();

}

3. nodeName返回的结果都是大写字母。

    如imgName.nodeName = 'IMG'.

4. nodeType

  元素节点的nodeType值是1,属性节点值是2,文本节点值是3.

5. 应该使用getAttribute() and setAttribute() method来代替以前直接使用属性名称赋值。

 foo.title = 'someTitle'  ==>   foo.setAttribute('title', 'someTitle')

6. getElementBy*(o).childNodes返回的都是一个对象数组,它会将元素的属性节点对象,文本节点对象一并返回,故而,当使用nodeValue属性是要注意:

 <a href="#" id='link'>hello</a>

    'hello' == document.getElementById('link').childNodes[0].nodeValue   ==> true

    因为这个‘hello’是属于位文本节点的值,而不是元素节点的值(元素节点有值么?)。

7. innerHTML属性不是一个业界标准,而是一项专利技术,虽然现在几乎所有浏览器都对它提供了很好的支持。

8.  document.createNode('tagName') || document.createTextNode('content') --> parentNode.appendChild(childNode)//动态添加文本或者标签的方法

  child1.parentNode.insertBefore(newChilde, child1)//将一个新的节点插入到父节点的子节点前面

Note:虽然可以使用JS动态的将内容添加到HTML文档中,但是考虑到目前搜索引擎的搜索机(Searchbot)还不怎么支持JS, 因此当使用JS向网页中写入重要内容时,就应当仔细考虑设计和实现方式。

    

posted @ 2013-07-12 15:10  Tilney  阅读(151)  评论(0编辑  收藏  举报