5

我试图在某个 div 中获取所有输入元素,但它似乎返回任何给定页面上的所有输入......有没有办法做到这一点?

if($('#umi-form')) {
          var inputs = document.getElementsByTagName('input');
}
4

3 回答 3

13

可以这样做:

var $inputs = $('#umi-form input');
于 2010-12-14T19:18:18.550 回答
8

您的if()测试将始终评估true。您应该使用length.if()

var uform = $('#umi-form');
if(uform.length) {
    var inputs = uform.find('input');
}

如果您希望获得 anodeList而不是 jQuery 对象,请执行以下操作:

var uform = $('#umi-form');
if(uform[0]) {
    var inputs = uform[0].getElementsByTagName('input');
}
于 2010-12-14T19:21:23.947 回答
1

首先是 JavaScript...

document.getElementsByTagName( 'input' );

将获得( "page" )input中的所有 s 。同时document

document.getElementById( 'umi-form' ).getElementsByTagName( 'input' );

将得到所有的inputs #umi-form

在这种情况下,调用getElementsByTagName是在句点之前的元素上。如果我们在页面上调用它,我们将获得页面document上带有命名标签的所有元素。如果我们在 的子元素上调用它,那么我们只会从该子元素中获取带有命名标签的元素。document

您将始终获得调用该方法的元素内的所有带有命名标记的元素。但是,如果您只想获得其中一个,请使用

target_element.getElementsByTagName( 'tag-name' )[ index ];

其中index是返回的范围内的整数length,通过

target_element.getElementsByTagName( 'tag-name' ).length;

由于 jQuery 是一个 JavaScript 库,因此建议在尝试使用 jQuery IMO 之前对 JS 有一个很好的了解。

于 2016-03-17T08:16:42.270 回答