我正在尝试获取某个div中的所有输入元素,但它似乎返回任何给定页面上的所有输入...有没有办法做到这一点?
if($('#umi-form')) {
var inputs = document.getElementsByTagName('input');
}
答案 0 :(得分:12)
可以这样做:
var $inputs = $('#umi-form input');
答案 1 :(得分:7)
您的if()
测试将始终评估true
。您应该使用length
中的if()
属性。
var uform = $('#umi-form');
if(uform.length) {
var inputs = uform.find('input');
}
如果您希望获得nodeList
而不是jQuery对象,请执行以下操作:
var uform = $('#umi-form');
if(uform[0]) {
var inputs = uform[0].getElementsByTagName('input');
}
答案 2 :(得分:1)
document.getElementsByTagName( 'input' );
将获取input
中的所有document
("页面" )。虽然
document.getElementById( 'umi-form' ).getElementsByTagName( 'input' );
将获取input
中的所有#umi-form
。
在这种情况下,getElementsByTagName
的调用位于句点之前的元素上。如果我们在document
上调用它,我们会在页面上获得带有指定标记的所有元素。如果我们在document
的 child 元素上调用它,那么我们只从该子元素中获取带有命名标记的元素。
您将始终获取所有带有命名标记的元素,这些元素位于元素中,并调用该方法。但是,如果您只想获得其中一个,请使用
target_element.getElementsByTagName( 'tag-name' )[ index ];
其中index
是返回length
范围内的整数,它是通过
target_element.getElementsByTagName( 'tag-name' ).length;
由于jQuery是一个JavaScript库,因此在尝试使用jQuery IMO之前,建议您充分了解JS。