簡體   English   中英

getElementsByClassName與jquery

[英]getElementsByClassName vs. jquery

如果我原來的功能是:

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')[9].innerHTML="BLAH";
    

    這應該可以解決您的問題

    試試這個

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

    你也應該只能使用jQuery的get()方法:

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

    jQuery對象也作為返回元素作為索引數組,所以這也應該工作:

    $('.blah')[9]
    

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM