Javascript Textbox的length属性在JQuery中从不返回0

Javascript Textbox的length属性在JQuery中从不返回0,javascript,jquery,Javascript,Jquery,我想知道,当我使用JQuery获取文本框时,为什么文本框的length属性永远不会返回0。即使文本框为空,$element.length也不会返回0 假设我们有以下代码: <input id="Text1" type="text" /> $(function () { alert($('#Text1').length); var textBox1 = document.getElementById("Text1"); alert(te

我想知道,当我使用JQuery获取文本框时,为什么文本框的length属性永远不会返回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);
    });
}); 
您可以看到,$'Text1'。长度永远不会返回0。对于纯javascript,文本框为空时返回0


为什么?

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

 $(element).val().length

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

 $(element).val().length
这是因为代码中的.length返回jQuery对象的长度。这是因为代码中的.length返回jQuery对象的长度。