2

对学习 jQuery 有点陌生,我写了这个脚本。

<script type="text/javascript">
    $(document).ready(function(){
        alert($("#myInput").value);
        alert($("#myInput").length);
    });
</script>

<input id="myInput" value="Hello, World!" type="text" />

我不知道为什么它总是向我显示:

undefined
1

虽然预期的输出是:

Hello, World!
13

请给我建议。提前致谢。

4

3 回答 3

3

value不是有效的 jQuery 方法。你可能想要:

$(document).ready(function() {
    alert($("#myInput").val());
    alert($("#myInput").val().length);
});

.val方法(没有传递参数)返回匹配元素的当前值(如果适用)。使用普通/基本 Javascript,您将.value在元素对象上使用,但$()返回一个与HTMLElement(从 中返回的内容document.getElementById) 完全不同的“jQuery 对象”。因此 jQuery 对象没有value属性并返回undefined. 而document.getElementById("myInput").value(并.length在最后添加)会为你工作。

.length属性是 Javascript(和数组)中字符串变量的基本属性。由于从返回的结果$()是一个类似数组的对象,它有一个length属性表示有多少元素匹配您的选择器。在您的情况下,它匹配 1,即 id 为“myInput”的元素。

于 2013-01-31T18:27:09.180 回答
1

您可以使用val()jQuery 对象的方法,尝试这样的事情:

$(document).ready(function(){
    var value = $("#myInput").val()
    alert('Value: ' + value);
    alert('Value: ' + value.length);
});
于 2013-01-31T18:29:17.473 回答
0

此类问题已被多次讨论和回答。总是,在回答之前做一个搜索。让我给你一些建议。

  1. 当你有不同类型的它们,如文本框、复选框、单选、文本区域时,你有内置函数.val(),主要用于获取表单输入的当前值,并且它们中的每一个都使用不同的类型。因此,以这种方式更改您的第一个脚本:

    alert($("#myInput").val());
    
  2. 返回的对象$("#myInput")将是一个 jQuery 元素集合。所以,只有一个<input type="text" id="myInput" />。您需要使用$("#myInput").val().length, 并给出文本框中值的长度。因此,将您的第二个脚本更改为:

    alert($("#myInput").val().length);
    
于 2013-01-31T18:27:12.300 回答