我正在尝试获取在listview中单击的元素的编号,如下所示:
$('#list_task0').on('click', $('li'),function( event, ui ) {
//alert($('#list_task0:last-child').text());
//alert($('#list_task0'.size());
day_to_edit = $(this).index();
});
列表生成如下:
$('<div>').attr({'id':'task_'+task_count+'','data-role':'collapsible'}).html('<h2>Task : '+task_name+'</h2><h1><ul id=list_task'+task_count+' data-role="listview" data-theme="b" data-icon="false"></ul></h1>').appendTo('#task_recapitulator');
$('<li>').attr({}).html('<a href="#"> Project : '+curr_proj+'</a>').appendTo('#list_task'+task_count+'');
$('<li>').attr({'data-theme':'a'}).html('<a href="#"> Shift/On Call : '+curr_shift+'</a>').appendTo('#list_task'+task_count+'');
for(var j=0;j<7;j++) {
$('<li>').attr({'data-theme':''+theme(j)+''}).html('<a href="#"> Day '+(j+1)+' hours : <span class="ui-li-count">'+hours[j]+'</span></a>').appendTo('#list_task'+task_count+'');
}
task_count++;
$('#new').trigger('create');
我错过了什么?每次返回的索引为0,创建的列表大小为1,只有一个子节点。但是,如果我检查它,它似乎是一个常规列表,li标签正确嵌套在里面......我想.appendTo创建了一个新的孩子?
P.S。:我只是听#list_task0点击进行调试
答案 0 :(得分:0)
使用li而不是$(li),并且这个不是字符串它是对象,删除双引号
$('#list_task0').on('click', 'li',function( event, ui ) {
day_to_edit = $(this).index();
});
答案 1 :(得分:0)
您正在调用day_to_edit = $('this').index();
,这意味着this
是一种标记类型,但实际上它应该是当前html元素的一个实例。
所以称之为:
day_to_edit = $(this).index();