我通过jQuery加载一些HTML元素:
考虑这种情况:
<li>test</li> (1)
<li>test</li> (2)
<li>test</li> (3)
Run Code Online (Sandbox Code Playgroud)
如果我做:
$("body").find('li:last')
Run Code Online (Sandbox Code Playgroud)
我会得到最后一个li元素,我标记的那个元素(3)以及我是否总是按顺序添加可以正常的项目.但是,如果我在其间添加一个新元素:
<li>test</li> (1)
<li>test</li> (2)
<li>test</li> (4)<-
<li>test</li> (3)
Run Code Online (Sandbox Code Playgroud)
:最后不会这样做,因为我添加的元素不是列表中的最后一个.
我如何得到(4)的引用?
编辑:请,没有eq()解决方案,我需要这是动态的,我不能总是知道在上下文中添加元素的位置.
没有内置的方法来了解最后添加的元素是什么.你必须自己跟踪它.
至少有几种方法可以做到这一点.
您可以在代码中保留对它的引用.
你可以使用data-*
属性或类,然后再去寻找它,例如:
// Get the last
var last = $("[data-last]");
// When adding
$("[data-last]").removeAttr("data-last"); // clear from previous
$(....).append(...).attr("data-last", 1); // set on the new one
Run Code Online (Sandbox Code Playgroud)
要么
// Get the last
var last = $(".last");
// When adding
$(".last").removeClass("last"); // clear from previous
$(....).append(...).addClass("last"); // set on the new one
Run Code Online (Sandbox Code Playgroud)(补充):由于只有一个 "最后"元素,我认为使用一个方法的亚美尼亚方法id
是有道理的,尽管不是他做的方式.根本不需要计数器,只需使用last
:
// Get the last
var list = $("#last");
// When adding a new one
$("#last").attr("id", "");
$(...).append(...)[0].id = "last"; // Or .attr("id", "last");
Run Code Online (Sandbox Code Playgroud)我倾向于喜欢#1#3,但#1和#2有一些真实的用例.
添加最后一个元素时,可以尝试添加一个类:
.addClass("lastAdd");
Run Code Online (Sandbox Code Playgroud)
然后你会得到参考 $(".lastAdd")
归档时间: |
|
查看次数: |
3675 次 |
最近记录: |