2015-06-21 6 views
0

У меня есть этот тест страницы:Используя метод только один элемент

<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 

<h1>test1</h1> 
<h1>test2</h1> 
<h1>test3</h1> 

Я могу скрыть все элементы, используя $('h1').hide(), но по какой причине я не могу только скрыть второй элемент, используя $('h1')[1].hide()? Как я могу это сделать?

Использование $('h1')[1].hide() я получаю следующее сообщение об ошибке:

Uncaught TypeError: $(...)[1].hide is not a function 
    at <anonymous>:2:12 
    at Object.InjectedScript._evaluateOn (<anonymous>:895:140) 
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34) 
    at Object.InjectedScript.evaluate (<anonymous>:694:21) 
+1

$ ('h1') уравнения (1) .hide() – Dreamweaver

ответ

1

.eq() Используйте функцию в JQuery вместо кнопки [1] непосредственно.

https://api.jquery.com/eq/

Таким образом, вы могли бы сделать что-то вроде этого $('h1').eq(1).hide();

Или вы можете использовать :eq() подселектор

https://api.jquery.com/eq-selector/

Таким образом, вы могли бы сделать что-то вроде этого $('h1:eq(1)').hide();

+0

по какой причине '[1]' не работает? – Macabeus

+2

Becuase возвращаемое значение $ (селектор) является объектом jQuery, а не чистым массивом элементов javascript. В этом случае это объект jQuery, который содержит список элементов, которые обрабатывают селектор, поэтому вам нужно будет использовать функцию jQuery для доступа к одному элементу из списка. – 3abqari

2

Вы должны использовать другой селектор jQuery для это - его: nth-child() - селектор (см. документы: https://api.jquery.com/nth-child-selector/). В вашем примере это может быть использовано как следующие:.

jQuery('h1:nth-child(2)').hide(); 
Смежные вопросы