Textbox的length属性永远不会返回0与JQuery

时间:2015-02-17 15:46:11

标签: javascript jquery

我想知道为什么当我使用JQuery获取文本框时,文本框的长度属性永远不会返回0。即使文本框为空,$(element).length也不会返回0.

假设我们有这段代码:

<input id="Text1" type="text" />

$(function () {            
    alert($('#Text1').length);
    var textBox1 = document.getElementById("Text1");
    alert(textBox1.value.length);

    $('#Text1').on('input', function() {
        alert($('#Text1').length);
        var textBox1 = document.getElementById("Text1");
        alert(textBox1.value.length);
    });
}); 

JS Fiddle here

你能看到,$('#Text1').length永远不会返回0.使用纯javascript时,当文本框为空时它会返回0。

为什么?

1 个答案:

答案 0 :(得分:5)

您需要使用.val()获取文本框的值。 $(element).length将返回$(element)中存在的对象数量的长度,在您的情况下为1:

 $(element).val().length

Working Demo