JS DOM编程艺术——DOM获取元素—— JS学习笔记2015-7-6(第77天)

这里介绍了一个新的获取元素的方法:getElementsByClassName;  

通过类名来获取元素,不仅可以是一个类名,也可以是多个类名,

也就是说这样写也可以:document.getElementsByClassName("sale important") // sale和important都是类名

还有就是,顺序在这里也不是那么重要,写成这样也是可以的:document.getElementsByClassName("important sale") // 这种便捷往往会带来隐患

需要注意的是,这个方法是在HTML5 DOM中新增的,所以使用时,需要注意浏览器的支持和兼容性问题;

考虑到兼容性问题,作者给出了一个解决方案:

function getElementsByClassName(node, classname){

  if(node.getElementsByClassName){

    // 使用现有方法

    return node.getElementsByClassName(classname);

  }else {

    var results = new Array();

  var elems = node.getElementsByTagName("*");

    for (var i=0; i<elems.length; i++){

       if(elems[i].className.indexof(classname) != -1){

              results[results.length] = elems[i];

         }

    }

    return results;

  }

}

关于indexof

indexOf()定义和用法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(searchvalue,fromindex)

参数

描述
searchvalue     必需。规定需检索的字符串值。
fromindex

    可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。

如省略该参数,则将从字符串的首字符开始检索。

说明

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

提示和注释

注释:indexOf() 方法对大小写敏感!

注释:如果要检索的字符串值没有出现,则该方法返回 -1。

实例

在本例中,我们将在 "Hello world!" 字符串内进行不同的检索:

<script type="text/javascript">    
var str="Hello world!";  
document.write(str.indexOf("Hello") + "<br />");  
document.write(str.indexOf("World") + "<br />"); 
document.write(str.indexOf("world"));    
</script>

以上代码的输出:

0  -1  6    
原文地址:https://www.cnblogs.com/zhangxg/p/4625605.html