我有这个测试页面:
<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)
答案 0 :(得分:2)
你应该为此使用另一个jQuery选择器 - 它的:nth-child() - selector(参见docs:https://api.jquery.com/nth-child-selector/)。在您的示例中,可以使用如下所示:
jQuery('h1:nth-child(2)').hide();
答案 1 :(得分:1)
直接使用jQuery中的.eq()
函数而不是[1]。
所以,你要做这样的事情$('h1').eq(1).hide();
或者您可以使用:eq()
子选择器
https://api.jquery.com/eq-selector/
所以,你要做这样的事情$('h1:eq(1)').hide();