jquery - получить элементы по тегу в конкретном div? - PullRequest
2 голосов
/ 14 декабря 2010

Я пытаюсь получить все входные элементы в определенном div, но кажется, что он возвращает все входные данные на любой странице ... есть ли способ сделать это?

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

Ответы [ 3 ]

12 голосов
/ 14 декабря 2010

Это можно сделать так:

var $inputs = $('#umi-form input');
7 голосов
/ 14 декабря 2010

Ваш 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');
}
1 голос
/ 17 марта 2016

JavaScript first ...

document.getElementsByTagName( 'input' );

получит все input s в document ( "страница" ).В то время как

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

получит все input s в #umi-form.

В этом случае вызов getElementsByTagName происходит на элементе передПериод.Если мы вызовем его на document, мы получим все элементы с именованным тегом на page .Если мы вызовем его для child элемента document, то мы получим только элементы с именованным тегом из этого потомка.

Вы всегда получите все элементы сименованный тег, который находится внутри элемента , в котором вызывается метод.Однако, если вы хотите получить только один из них, используйте

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

, где index - это целое число в пределах диапазона возвращенного length, который получается с помощью

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

Поскольку jQuery - это библиотека JavaScript, желательно получить хорошее представление о JS, прежде чем пытаться использовать jQuery IMO.

...