我正在尝试简单的事情(?),以计算列表项的数量并将其附加到父div中的列表中。问题是它始终采用最后一个值,因为你可以看到第一个列表有4个项目,并说4/2这应该是4/4 ..如何解决这个问题?
由于
代码:
$(".list_slides_pagination li a").each(function() {
list_slides_count = $(".list_slides").find(".list_slides_pagination").length;
$(this).append("/" + list_slides_count);
console.log(list_slides_count)
});
答案 0 :(得分:2)
这样的事情应该有效:
$(".list_slides").each(function () {
var list_slides = $(this).find(".list_slides_pagination li a");
list_slides.each(function () {
$(this).append("/" + list_slides.length);
});
});
答案 1 :(得分:1)
您是否正在寻找 something like this? 。如果是,则使用以下方法
$(".list_slides_pagination").each(function () {
var num_li = $('li', $(this)).length
$('li a', $(this)).each(function () {
$(this).html($(this).html() + '/' + num_li);
})
});
<ul>
<li>
它的数量<a>
内的每个<ul>
并将该计数附加到其中答案 2 :(得分:1)
你总是指同一个名单......你应该使用这个:
$(this).closest(".list_slides_pagination").find("li").length;
答案 3 :(得分:1)
使用以下代码
$(".list_slides_pagination li").each(function() {
list_slides_count = $(this).parent().find("li").length;
$(this).append("/" + list_slides_count);
console.log(list_slides_count)
});
答案 4 :(得分:1)
使用该代码:
$(".list_slides_pagination").each(function() {
list_slides_count = $(this).find("li").length;
$(this).find('a').each(function(){
$(this).append("/" + list_slides_count);
})
});
答案 5 :(得分:1)
这应该在jquery中适用于你(虽然它可能不是最简洁的jquery语法)
$(".list_slides_pagination").each(function (index1, element) {
var items = $("li a", element),
count = items.length;
items.each(function (index2, item) {
item.textContent = item.textContent + "/" + count;
});
});
上
这是我原来的javascript思想,我将其翻译成上面的内容。为了演示@roasted
Array.prototype.forEach.call(document.querySelectorAll(".list_slides_pagination"), function (element) {
var items = element.querySelectorAll("li a"),
count = items.length;
Array.prototype.forEach.call(items, function (item) {
item.textContent = item.textContent + "/" + count;
});
});
上
在这里,我们提供了jsperf所有解决方案,而不仅仅是我的解决方案,以便我们提供性能指南。