0

我有一个元素数组,我想获取被点击的元素的索引,但是在我的代码中我一直得到相同的值。即使通过萤火虫我可以看到所有元素都在数组中。我的代码如下

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'); 
}

.doneajax 调用部分我正在使用这个函数

.done(function(){ 

        $('li').on('click', 'a', function () {
            alert(links.indexOf(this.li));

        }); 

当我单击链接时,我只能得到值 -1,这是不可能的。如何获取用户单击的列表视图中链接的索引值?

4

3 回答 3

0

听起来您可能正在寻找 index() 方法。

http://api.jquery.com/index/

您可能还需要 parent() 方法。

于 2013-04-04T01:16:32.233 回答
0

这段代码似乎工作正常

.done(function(){ 
        $('ul').children('li').on('click', function () {
        var selected_index = $(this).index();
        alert('Selected Index = ' + selected_index);
    });

但是如何使用该索引来获取索引中的值,例如 href 和 id

于 2013-04-04T17:04:02.230 回答
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>';

解决方案证明

于 2013-04-04T01:54:38.030 回答