Javascript 小JS库的问题

Javascript 小JS库的问题,javascript,html,function,dom,Javascript,Html,Function,Dom,为了好玩和学习JS,我正在尝试编写一个小的JS验证库。其思想是循环表单标记中的元素,并根据其他自定义属性检查输入元素是否有效 我现在被困在如何使用元素在同一个“原型”中调用函数上 这是基于我试图开发的一个教程,如果SE策略需要提及此代码的源代码,请告诉我 将使用此函数从html文档调用代码 <script type="text/javascript"> function processForm() { _('form1').validate(); }

为了好玩和学习JS,我正在尝试编写一个小的JS验证库。其思想是循环表单标记中的元素,并根据其他自定义属性检查输入元素是否有效

我现在被困在如何使用元素在同一个“原型”中调用函数上

这是基于我试图开发的一个教程,如果SE策略需要提及此代码的源代码,请告诉我

将使用此函数从html文档调用代码

<script type="text/javascript">
    function processForm() {
        _('form1').validate();
    }
</script>

函数processForm(){
_('form1').validate();
}
这是lib代码:

function _(id) {
if (id) {
    if (window === this) {
        return new _(id);
    }

    // We're in the correct object scop:
    // Init our element object and return the object
    this.e = document.getElementById(id);
    return this;
} else {
    return "NO ID PARAM WAS GIVEN";
}
}
_.prototype = {
validate    :function () {
                try {
                    var elem = this.e.elements;
                    for(var i = 0; i < elem.length; i++){
                        //alert(elem[i].getAttribute("id"));
                        // STUCK HERE, how to call the bgcolor function of this prototype
                        so i can change the bgcolor for the current elem of the loop ?
                    }
                }
                catch(err)
                {
                    alert(err.message);
                }
            },  

bgcolor: function (color) {
            this.e.style.background = color;
            return this;
        },
};
函数(id){
如果(id){
如果(窗口===此){
返回新的uID;
}
//我们在正确的对象范围内:
//初始化元素对象并返回该对象
this.e=document.getElementById(id);
归还这个;
}否则{
返回“未提供ID参数”;
}
}
_.原型={
验证:函数(){
试一试{
var elem=本元素;
对于(变量i=0;i
可能类似于:

for (var i = 0; i < elem.length; i++){
    this.bgcolor(elem[i], "red");
}
或者是一个可选元素,默认为
this
,与在表单本身上运行的现有代码保持同步

bgcolor: function (color, el) {
    el = el || this;
    el.style.background = color;
    return this;
}

它当前的设置方式将更改表单的背景颜色,而不是表单元素。如果我没有弄错,您可以在原型函数中使用
this
。所以,
this.getAFormElement().bgColor=“#随便什么”应该可以工作。(除了不存在的getAFormElement()函数)当我调用dom元素的属性时,说存在的“value”(elem[i].value=“#FFCC00”;//有效),这是有效的,但当我调用自定义函数bgcolor时就不行了……如果原型函数未到达,但catch块不会抛出错误……奇怪,谢谢,把el param带出去会更好吗?我假设函数应该查看当前元素并对其进行处理,此代码将执行一次…开始结束,这样元素就不会出错如果您将
el
取出,您正在更改表单的
样式。背景
(表单==
在代码中)。这就是你想要的吗?看起来不是这样。你是对的,抱歉重复了。目标是让bgcolor函数与传递给u函数的任何元素一起工作…为了允许链接,它可能看起来很奇怪:)但这是我需要在JS中理解的部分…我选择在本教程中学习。好的。因此,建议答案中的第一个块使用this.bgcolor调用您的bgcolor方法,但是为了更改元素的颜色,而不是表单本身,我们需要将元素传递给该方法;但这不是:this.e.children[i].bgcolor(“#FFCC00”);
bgcolor: function (color, el) {
    el = el || this;
    el.style.background = color;
    return this;
}