Jquery 查找数组元素的索引
我有一个元素数组,我想得到被点击元素的索引,但是在我的代码中,我一直得到相同的值。尽管通过firebug我可以看到所有元素都在数组中。我的代码在下面 ajax调用的回调如下所示:Jquery 查找数组元素的索引,jquery,jquery-mobile,Jquery,Jquery Mobile,我有一个元素数组,我想得到被点击元素的索引,但是在我的代码中,我一直得到相同的值。尽管通过firebug我可以看到所有元素都在数组中。我的代码在下面 ajax调用的回调如下所示: function featuredtrackscallback(rtndata) { //$('#pagetitle').html("New Articles"); var data=""; for(j=0;j<=rtndata.length -1;j++) { links[j] = "<li&
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');
}
当我点击链接时,我只得到值-1,这是不可能的。如何在用户单击的列表视图中获取链接的索引值?听起来您可能在寻找index()方法
您可能还需要parent()方法。我认为最大的问题是您试图将DOM元素与字符串匹配。这与您编写脚本的方式不一样 要使此功能正常工作,需要两个修复程序 首先是获取该DOM元素并获取其字符串版本:
$('li').on('click', 'a', function () {
var match_string = $(this).parent().clone().wrap('<li/>').parent().html();
alert( links.indexOf( match_string ) );
});
$('li')。在('click','a',函数(){
var match_string=$(this.parent().clone().wrap(“”).parent().html();
警报(links.indexOf(匹配字符串));
});
第二个要求更改设置
数组时使用的引号。放入字符串格式的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>';
链接[j]='';
此代码似乎工作准确
.done(function(){
$('ul').children('li').on('click', function () {
var selected_index = $(this).index();
alert('Selected Index = ' + selected_index);
});
但是,如何使用此索引获取索引中的值,如href和id这看起来不是一个好方法。你想做什么?可能
这个.li
是未定义的
,因为通常在任何HTML元素上都没有这样的属性。即使你让它工作起来,也有一个明显的问题。链接
中的索引等于rtnda
中的索引,它不一定是其
中元素的索引。这是因为附加LIs时没有首先清除
,因此以前附加的LIs仍然存在。如果我理解正确,那么您可以使用jQuery的.index()
在\featurelist
中查找单击链接的父级
的索引。这似乎是您想要的,但不清楚原因。检查聊天,告诉我您到底需要什么。@Beetroot Beetroot当我检查firebug中的链接数组时,它看起来很好,如rtnda[j]。track_id
是数据库表中的一个值。
.done(function(){
$('ul').children('li').on('click', function () {
var selected_index = $(this).index();
alert('Selected Index = ' + selected_index);
});