我有一个元素数组,我想得到被点击的元素的索引,但是在我的代码中我一直保持相同的值。即使通过firebug我可以看到所有元素都在数组中。我的代码在
之下ajax调用的回调如下:
function featuredtrackscallback(rtndata)
{
//$('#pagetitle').html("New Articles");
var data="";
for(j=0;j<=rtndata.length -1;j++)
{
links[j] = "<li><a href='./player.html?id="+rtndata[j].track_id+"' data-transition='slide' id="+rtndata[j].track_name+"><h3>" + rtndata[j].track_name + "</h3><p><strong>" + rtndata[j].artist_name + "</strong></p><p>" + rtndata[j].genre_name + "</p></a></li>";
$('#featurelist').append(links[j]);
}
$('#featurelist').listview('refresh');
}
在ajax调用的.done
部分中,我正在使用此函数
.done(function(){
$('li').on('click', 'a', function () {
alert(links.indexOf(this.li));
});
当我点击链接时,我只得到值-1,这是不可能的。如何获取用户单击的列表视图中链接的索引值?
答案 0 :(得分:0)
答案 1 :(得分:0)
我认为最大的问题是你正在尝试将DOM元素与字符串匹配。这不会像编写脚本那样起作用。
完成此项工作需要两个修复程序。
第一个是获取DOM元素并获取它的字符串版本:
$('li').on('click', 'a', function () {
var match_string = $(this).parent().clone().wrap('<li/>').parent().html();
alert( links.indexOf( match_string ) );
});
第二个要求更改设置<li>
数组时使用的引号。放入字符串格式的DOM元素在其属性值周围使用双引号,并且两个字符串必须完全匹配 才能使其生效。
links[j] = '<li><a href="./player.html?id='+rtndata[j].track_id+'" data-transition="slide" id="'+rtndata[j].track_name+'"><h3>'+rtndata[j].track_name+'</h3><p><strong>'+rtndata[j].artist_name+'</strong></p><p>'+rtndata[j].genre_name+'</p></a></li>';
答案 2 :(得分:0)
此代码似乎可以正常工作
.done(function(){
$('ul').children('li').on('click', function () {
var selected_index = $(this).index();
alert('Selected Index = ' + selected_index);
});
然而,如何使用此索引来获取索引中的值,例如href和id