zoukankan      html  css  js  c++  java
  • [ javascript ] getElementsByClassName与className和getAttribute!

    对于javascript中的getElementsByClassName 在IE 6/7/8 不支持问题。

    那么须要模拟出getElementsByClassName  须要採用className属性,这里就涉及到javascript中的getAttribute问题。

    在ie 6/7 中,对于getAttribute存在Bug

    须要採用className 获取例如以下:

    var node = document.getElementById("test");
    var name = node.className;

    对于标准浏览器,则能够直接使用className 也能够使用 getAttritbute,结果一样:

    node.getAttritbute("class");

    可是假设是ie 6/7 ,则getAttribute()存在问题。

    所以getElementsByClassName 能够使用例如以下方式:

    getElementsByClazzName = document.getElementsClassName ? 
    							function(name){
    								return document.getElementsClassName(name);
    							}:function(name){
    								var nodes = document.getElementsByTagName("*"),
    									result = [];
    								for(var node in nodes){
    									if(node.className && node.className.indexOf(name)){
    										result.push(node);
    									}	
    								}
    								return result;
    							}

    这里的实现方式比較简单。

    1:常规属性建议使用:node.xxx。
    2:自己定义属性建议使用: node.getAttribute("xxxx")。
    3:当获取的目标是 javascript 里的keyword时建议使用node.getAttribute("xxx")。如label中的for。
    4:当获取的目标是保留字,如:class,请使用className取代。

  • 相关阅读:
    Windows网络编程:多线程技术
    Windows网络编程:OSI七层模型
    Windows网络编程:WinSock模型
    Windows网络编程:基于Scoket最简单的CS
    Windows网络编程:同步/异步 阻塞/非阻塞
    1.WebGL:简介
    无聊的面试啊:2020
    第一次面试
    实习第三周
    Eclipse新建web项目
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7122779.html
Copyright © 2011-2022 走看看