如何访问JQuery对象

时间:2013-06-14 05:56:23

标签: javascript jquery object

如何在调用validateName时访问jquery对象?

在下面的代码中,errorDate不是JQuery对象。

更正变量名称

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        if (errorDate.val().length == "") {
            errorDate.addClass("error");
            return false;
        }
        else {
            errorDate.removeClass("error");
            return true;
        }
    }  
});

3 个答案:

答案 0 :(得分:5)

只需使用$(this)代替name

答案 1 :(得分:2)

你可以

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        var $this = $(this);
        if ($this.val().length == "") {
            $this.addClass("error");
            return false;
        }
        else {
            $this.removeClass("error");
            return true;
        }
    }  
});

或者使用errorDate代替name,因为它是一个闭包变量

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        if (errorDate.val().length == "") {
            errorDate.addClass("error");
            return false;
        }
        else {
            errorDate.removeClass("error");
            return true;
        }
    }  
});

答案 2 :(得分:2)

试试这个,

$(document).ready(function() {
    var errorDate = $("#errorDate");
    errorDate.blur(validateName);

    function validateName() {
        // no need to get length you can use $(this).val()==""
        if ($(this).val() == "") {
            $(this).addClass("error");
            return false;
        }
        else {
            $(this).removeClass("error");
            return true;
        }
    }  
});

小提琴http://jsfiddle.net/jtWFX/