getElementsByClassName与jquery

如果我原来的function是:

document.getElementsByClassName('blah')[9].innerHTML = 'blah'; 

…我将如何更改,以便在jquery中获得相同的项目? 我有这个,但当我把'[9]’放在最后它不起作用:

 $(data).find('.blah')[9].html(); 

它离开了[9],它只获得了第一个类名为’blah’的项目,我希望它能得到第10个项目。

相当于

 document.getElementsByClassName('blah')[9].innerHTML = 'blah'; 

是使用:eq伪选择器 :

 $(".blah:eq(9)").html('blah'); 

或者eq函数 :

 $(".blah").eq(9).html('blah'); 

(…然后使用html函数设置内部HTML。)

看看你在找什么:eq()

 $('.blah').eq(9).html('blah'); 

因为:eq()0索引,所以:eq(9)将在第10个索引处找到该项。

.eq()jQuery doc

还有:nth-child()函数:

 $('.blah:nth-child(10)').html('blah'); 

因为:nth-child()1索引的,所以你必须在那里放置第10个位置。

:nth-​​child()jQuery doc

来自文档:

因为jQuery的实现:nth-​​选择器严格来自CSS规范,n的值是“1-indexed”,这意味着计数从1开始。对于其他选择器表达式,例如:eq()或:甚至jQuery如下JavaScript的“0索引”计数。 鉴于一个包含两个

  • s,$(’li:nth-​​child(1)’)选择第一个
  • 而$(’li:eq(1)’)选择第二个。
  • 尝试以下方法

     $('.blah').eq(9).html('blah'); 

    另一个答案可能是:

     $($(data).find('.blah')[9]).html(); 

    当你使用[9]时,它返回一个DOM对象,它不知道html()是什么函数但是没有[9]它返回一个jQuery对象,html()函数是它的一部分。

    试试这个

     $(".blah:eq(9)").html('blah'); 

    试试这个

     $('.blah').eq(9).html('blah'); 
     $('.blah')[9].innerHTML="BLAH"; 

    这应该可以解决您的问题

    您还应该只能使用jQuery的get()方法:

     $('.blah').get(9) 

    jQuery对象也作为返回元素作为索引数组,所以这也应该工作:

     $('.blah')[9]