好吧,我已经尽力搜索,但是。 我有一个任务,我需要使用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