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
注释:如果要检索的字符串值没有出现,则该方法返回 -1。
以上代码的输出:
通过类名来获取元素,不仅可以是一个类名,也可以是多个类名,
也就是说这样写也可以: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
相关文章推荐
- 20150706 js之定时器
- js format 加减
- ExtJs Alert
- Javascript 正则表达式笔记
- 对JavaScript优化及规范的一些感想
- 【译】编写高性能JavaScript
- javascript Date format(js日期格式化)
- 用AOP改善javascript代码
- 在widget.js中很多函数是自动执行的,不调用也会执行
- 封装AJax实现JSON前台与后台交互
- JavaScript Promise启示录
- Jsoncpp 数组的使用
- js数组常用方法总结
- [BZOJ 1013] JSOI 2008 球形空间产生器sphere · 高斯消元
- JSON学习心得
- Sublime 编辑 JS和HTML
- JSTL标签 参考手册
- JS 实现TextBox光标定位
- jsp.html中的引入js.css文件的问题,以及文件路径详解。
- js写的简单轮播图