[英]Performance of getElementById vs. getElementsByClassName vs. querySelector
[英]getElementsByClassName vs. jquery
如果我原來的功能是:
document.getElementsByClassName('blah')[9].innerHTML = 'blah';
...我將如何更改,以便在jquery中獲得相同的項目? 我有這個,但是當我把'[9]'放在最后它不起作用:
$(data).find('.blah')[9].html();
我離開了[9],它只獲得了第一個類名為'blah'的項目,我希望它能得到第10個項目。
看看你在找什么:eq()
:
$('.blah').eq(9).html('blah');
因為:eq()
是0
索引的,所以:eq(9)
將在第10個索引處找到該項。
還有:nth-child()
函數:
$('.blah:nth-child(10)').html('blah');
因為:nth-child()
是1
索引,所以你必須在那里放置第10個位置。
因為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.