我有吨的功能的JS脚本,上大上是这样的:

function id(i) {
    if(document.getElementById)
        return document.getElementById(i);
    return;
}

它只是节省了我多少字节在打字的document.getElementById()各一次。 我的问题是我经常添加和删除元素类和其他属性。 我希望能够做到这一点:

id('main').addClass("someClass");

有谁知道任何良好的Javascript原型教程,能解释一下吗? 感谢。

有帮助吗?

解决方案

您正在寻找的技术方法链接。基本上,“ID”功能应该返回的上面有“addClass”方法的对象实例。并且该方法将“返回此”。

下面的解释这个概念教程:点击 http://javascriptant.com/articles/32/chaining-your-javascript-方法

我也极力推荐这本书来学习更多的技术,比如这个(是链接被覆盖):-)点击 http://jsdesignpatterns.com/

其他提示

我要问:你刚才使用像jQuery的考虑?如果你没有这个问题可以简化为:

$("#main").addClass("someClass");

就大功告成了。如果目标是要自己实现(如果是的话,为什么呢?),那么你只需要知道,如果一个元素有3个班,实际的属性就是:

"one two three"

当然,其它方面正在写的扩展方法。

可以不实现,对于所有的浏览器,特别是其不能够延长上的元素的可用方法在IE6或7。

要诚实,你会节省自己的时间袋,如果你只是包括JQuery的在你的开发。

最佳

去同一个框架,如果可以的话,像克莱说。

然而,AnthonyWJones是不完全正确 - 这是不可能的扩展一般的Element对象上可用的方法,但您可以仍然将其添加到单个元素

您id函数可以延伸返回的元素与addClass方法:

function get(id){
    el = document.getElementById(id);
    el.addClass = function(cls){
        // your addClass code here
        // (remember IE uses className, others use class)
    };
    return el;
}

您甚至可以把它添加到Element对象(它会自动将其添加到网页上的所有元素),用于支持该功能,然后只在IE浏览器的显示功能添加方法的浏览器 - 这将节省内存和速度了应用一个位,特别是当你开始添加大量的元素的方法。

此行为究竟是怎么MooTools的解决了这个问题 - 它值得重申的是,最好使用一个框架,在可能的情况

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top