2015-06-21 62 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'),EQ(1).hide() – Dreamweaver

回答

1

使用.eq()功能的jQuery而不是[1]直接。

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

所以,你會做這樣的事$('h1').eq(1).hide();

或者你可以

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

所以使用:eq()子選擇,你會做這樣的事$('h1:eq(1)').hide();

+0

是什麼原因'[1]'不工作? – Macabeus

+2

因爲$(selector)的返回值是一個jQuery對象,而不是純粹的javascript數組項目。在這種情況下,它是一個jQuery對象,它包含一個加載選擇器的項目列表,因此您必須使用jQuery函數訪問列表中的單個項目。 – 3abqari

2

您應該使用另一個jQuery選擇器這 - 它是:nth-​​child() - 選擇器(請參閱文檔:https://api.jquery.com/nth-child-selector/)。在您的例子這是可以使用如下所示:。

jQuery('h1:nth-child(2)').hide(); 
相關問題