动态创建列表Javascript的索引
我有一个动态创建的列表,其中包含json的数据。 因此,我的问题是如何获取单击项的索引 我试过这个:动态创建列表Javascript的索引,javascript,list,dynamic,indexing,Javascript,List,Dynamic,Indexing,我有一个动态创建的列表,其中包含json的数据。 因此,我的问题是如何获取单击项的索引 我试过这个: $("li").click(function() { var index = $("li").index(this); alert(index); }); 但这不起作用。我没有收到警报? 如果我创建一些静态Li元素,我会得到它们的索引 请帮帮我://p>是的 $("li").click(function() { var index = $(this).
$("li").click(function() {
var index = $("li").index(this);
alert(index); });
但这不起作用。我没有收到警报?
如果我创建一些静态Li元素,我会得到它们的索引
请帮帮我://p>是的
$("li").click(function() {
var index = $(this).index();
alert(index);
});
两个问题:
$(this).index()
:
发件人:
如果未向.index()
方法传递任何参数,则返回值是一个整数,指示jQuery对象中第一个元素相对于其同级元素的位置
$(“li”)。单击(…)
时,它会将其连接到该时间点上存在的元素。稍后添加的对象将无法获得分配给它们的单击处理程序。处理此类动态列表的最佳方法通常是事件委派。DevlshOne给了你一个例子。其基本思想是:
$("selector for the list, not the list items").on("click", "li", function() {
// handler code here
});
钩住列表上的单击
,而不是列表项,但在单击发生时触发处理程序,就像钩住了对处理程序的单击一样动态创建的列表将需要委派事件
$("ul").on("click", "li", function() {
var index = $(this).index();
alert(index);
});
如果还动态创建了
,请选择在创建列表之前存在的父节点。尝试以下操作。假设未动态加载ul
$("ul.containerclass").on("click", "li", function()
{
var index = $(this).index();
alert(index);
});
或
注意:这里container类可以是ID他的问题与LI项的动态创建直接相关,而不是索引的值。他的帖子包含了这条语句,但这不起作用。我没有收到警报?如果我创建一些静态的Li元素,我会得到它们的索引。他的问题与Li项的动态创建直接相关,而不是索引的值。谁能猜到呢?我不建议将live events作为任何问题的默认解决方案,并且有多种方法可以将处理程序添加到动态创建的列表中。我没有收到警报?如果我创建一些静态Li元素,我会得到它们的索引。不用猜测。效果很好:)你帮了我很多。Thanks@user2561004如果您对此答案感到满意,请适当标记。谢谢
$("ul.containerclass").on("click", "li", function()
{
var index = $(this).index();
alert(index);
});
$(document).on("click", ".containerclass li", function() {
var index = $(this).index();
alert(index);
});