getElementsByClassName与jquery

时间:2013-03-30 13:46:19

标签: javascript jquery

如果我原来的功能是:

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

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

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

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

8 个答案:

答案 0 :(得分:18)

相当于

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

是使用:eq pseudo-selector

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

eq function

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

(...然后html function设置内部HTML。)

答案 1 :(得分:2)

查看您要查找的内容为: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

来自docs:

  

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

  • 的单个,$('li:nth-​​child(1)')选择第一个
  • ,而$('li:eq(1)')选择第二个。

  • 答案 2 :(得分:1)

    尝试以下

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

    答案 3 :(得分:0)

    另一个答案可能是:

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

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

    答案 4 :(得分:0)

    试试这个

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

    答案 5 :(得分:0)

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

    这应该可以解决您的问题

    答案 6 :(得分:0)

    试试这个

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

    答案 7 :(得分:0)

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

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

    jQuery对象也作为索引数组作为返回元素运行,因此这也应该起作用:

    $('.blah')[9]