$('input')。each(function(){});没有得到文档中的所有输入框

时间:2014-03-25 15:27:51

标签: javascript jquery html

我的文档里面有很多div和输入框。

一些输入框位于div .form-group级的$('input').each(function() { var id = $(this).attr('id'); alert(id); }); 内。我使用下面的脚本来警告所有输入的ID。但它没有检测到一些输入。

{{1}}

2 个答案:

答案 0 :(得分:2)

选择器input只匹配<input>个元素。例如,它不会匹配<select><textarea>元素。

如果要匹配所有输入元素,可以使用:input选择器。或者,您也可以在选择器中指定其他类型。

例如:

$(':input')

// OR //

$('input, select, textarea')

答案 1 :(得分:2)

您的代码段何时被调用?

例如......

<input id="id1">
<script>
    alert( $('input').length ) // will result in 1
</script>
<input id="id2">

考虑将您的代码段移动到正文标记的底部:

<input id="id1">
<input id="id2">
<script>
    alert( $('input').length ) // will result in 2
</script>

或将其包装为jQuery.ready回调:

<script>
    jQuery(function($) { // called after the DOM is loaded.
        alert( $('input').length ) // will result in 2
    });
</script>
<input id="id1">
<input id="id2">

请注意,创建一个新的jQuery实例(jQuery(...))将获取当前DOM结构的“快照”,如果稍后添加某些内容,它将不会更新:

<input>
<script> var $inputs = $('input'); </script>
<input>
<script> alert($inputs.length); // Still 1 because we took a "snapshot" when there was only 1 input element in the DOM </script>