2010-10-04 2 views
1

Есть ли способ в java-скрипте получить только конкретное имя вместо использования document.getElementsByName("x");, которые возвращают массив? У меня есть особая ситуация, когда я не могу использовать идентификатор. Любые предложения, пожалуйста? Спасибо.Как получить элемент html по имени

ответ

10

Просто получить первый элемент:

document.getElementsByName("x")[0]; 

Или для безопасности:

function getFirstElementByName(element_name) { 
    var elements = document.getElementsByName(element_name); 
    if (elements.length) { 
     return elements[0]; 
    } else { 
     return undefined; 
    } 
} 

(. КСТАТИ getElementsByName возвращает коллекцию, а не массив)

+0

В java-скрипте есть реальная разница между массивом и коллекцией? – Harshana

+0

Да. У них разные свойства. – Quentin

7

Если вы ищете для одного элемента, возьмите первый из нодлиста, например:

var element = document.getElementsByName("x")[0]; 

You can test it out here.

0

Или использовать jQuery, так что вы не нужно беспокоиться обо всем раздражении браузера.

Вы просто должны это сделать:

$("*[name='x']").first(); 

Чтобы получить первый элемент с таким именем. Если вы знаете тип элемента, то можете использовать его вместо «*». jQuery сделает вашу жизнь проще каждый раз!

+0

или $ ("* [name = 'x']"). First(), который не будет вызывать ошибку, если элемент не возвращается. – softcr

+5

Прекрасный, как-то я думаю, что в этом случае 'getElementsByName' намного меньше« раздражает ». – MooGoo

Смежные вопросы