【发布时间】:2015-08-24 21:45:47
【问题描述】:
我正在编写一些 javascript 和 HTML,并且由于我所编写的内容的性质,我受到启发,编写了一些快捷函数。我常用
document.getElementById()
和
document.getElementsbyClassName()
我经常通过这些方法访问样式属性,所以我用类似JQuery的样式写了这个快捷函数:
var $=function(elemId){
return(document.getElementById(elemId).style);
}
假设我有一个 id 为 'foo' 的 div,并且想将颜色更改为红色:
$('foo').color='red';
这为我节省了大量的代码
document.getElementById('foo').style.color='red';
尤其是当我在脚本中使用它五十多次时。
我对类做了类似的事情,但由于其性质,我无法访问 HTML 对象的 .style 对象
document.getElementsByClassName()
因为它返回一个字符串。我通常要做的是将项目收集为一个数组并像这样遍历它:
var x=document.getElementsByClassName('class');
for(i=0; i<x.length; i++){
x[i].style.color='red';
}
如您所见,使用类作为 ID 需要三倍的代码才能达到相同的效果。所以我要问的是:
有没有一种方法可以编写类似于顶部的函数,但适用于类,这样我就不必遍历它?理想的结果是
var css=function(classname){
//code here
}
css('class').color='red';
所以基本上我想要的是一个函数,它可以做我的 ID 函数所做的事情,但需要一个类,而不必遍历类。
免责声明
我不想要的是一个涉及 JQuery 的答案。我无法使用它,这就是我自己编写代码的原因。请只回答常规的 JavaScript。
如果您有任何问题,请发表评论,我会尽力澄清。谢谢!
【问题讨论】:
-
jQuery 使用
.css('key','value')是有原因的... -
仅供参考,您可以查看以下内容:ejohn.org/blog/simple-class-instantiation John 通过一个简单的方法来创建类似于 jQuery 的函数实例 - 然后您可以将获得的答案函数添加到原型中.
标签: javascript html css function shortcut