好吧,我已經盡力搜索,但是。 我有一個任務,我需要使用Ajax加載一些js等等。長話短說,我卡住了。點擊獲取jquery數組元素的索引
首先在一個的script.js代碼(我必須加載和我不能修改):
var divs = [
'<div class="item">Lorem ipsum 0</div>',
'<div class="item">Lorem ipsum 1</div>',
'<div class="item">Lorem ipsum 2</div>',
'<div class="item">Lorem ipsum 3</div>',
'<div class="item">Lorem ipsum 4</div>',
'<div class="item">Lorem ipsum 5</div>',
'<div class="item">Lorem ipsum 6</div>',
'<div class="item">Lorem ipsum 7</div>'
];
delete(divs[3]);
然後我的腳本加載它
$.getScript('script.js', function() {
$('.a').append('<div class="yep">' + divs.join('') + '</div>');
$('.item').each(function() {
$(this).click(function() {
console.log($('.item').index(this));
});
});
});
的問題是,點擊我需要獲得數組中的項目的索引,即如果我點擊「Lorem ipsum 4」控制檯應該打印「4」,而不是「3」,因爲它現在發生(因爲刪除的元素不出現在DOM)。 有沒有辦法使用jQuery獲得正確的結果?
好的,我需要說這是一項任務。這是事情:我簡直不能修改script.js。假設它在服務器上,並且在我得到它之前我無法訪問它。但我需要它在原始數組中具有的元素的索引。
一個可能的解決方案是將具有div元素的索引存儲在數據屬性中,如下所示:'
是的,您需要一個替代解決方案。因爲在運行.each()之前div已被刪除;該元素及其索引消失了。如上所述,您必須以另一種方式保存數據屬性。 – Syon
我無法修改script.js文件,我不需要從數組中刪除項目。我只需要得到正確的索引 – kibin