您的位置:首页 > Web前端 > JavaScript

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

2015-07-06 22:31 866 查看
这里介绍了一个新的获取元素的方法: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: