我正在编写一些代码来计算Div子元素的数量,然后根据循环迭代我想要一个新的div类名,例如“.ClassName”+ i。我试图用Jquery做这个,但是由于某种原因它不起作用。
<div class="Parent">
<div class="Percentage">
<pe:Percentage runat="server" />
</div>
<div class="Percentage">
<pe:Percentage runat="server" />
</div>
<div class="Percentage">
<pe:Percentage runat="server" />
</div>
</div>
$(document).ready(function() {
$(".Percentage").each(function(i, val) {
alert(val.innerHTML);
$("#Parent .Percentage").removeClass(".Percentage").addClass(".Percentage" + i);
alert(val.innerHTML);
});
// var count = $('.Percentage').length;
// alert(count);
// percentageCount();
});
这样做的好方法是什么?
尼克
答案 0 :(得分:1)
试试这个 Live Demo
$(".Percentage").each(function(i, val) {
$(this).removeClass("Percentage").addClass("Percentage" + i);
});
添加或删除类
时,不应该给点removeClass(“。Percentage”)应为removeClass(“Percentage”)
addClass(“。Percentage”+ i); 应为addClass(“Percentage”+ i)
答案 1 :(得分:1)
您不需要foreach来执行此操作
$(“。Parent .Percentage”)。removeClass(“Percentage”)。addClass(“Percentage”+ i);
答案 2 :(得分:1)
试试这个
$(".Parent .Percentage").each(function(i,val)
{
$(this).removeClass('Percentage').addClass("Percentage"+i);
});
答案 3 :(得分:0)
我认为应该是
$(".Percentage").each(function(i, val) {
$(this).removeClass("Percentage").addClass("Percentage" + i);
});
(在添加或删除类时没有“。”,只是类名)
性能更佳,请使用经典for
代替each
:
var $percentageElements = $(".Percentage");
for(var i = O; i< $percentageElements.length; i++){
var $percentage = $percentageElements.eq(i);
$percentage.removeClass("Percentage").addClass("Percentage" + i);
}
答案 4 :(得分:0)
我认为你应该首先添加新类,然后只删除旧类。 DEMO http://jsfiddle.net/KV7BZ/
答案 5 :(得分:0)
您可以使用$(this)
代替$("#Parent .Percentage")
并删除.
(点),因为您已经在处理课程。
所以
$("#Parent .Percentage").removeClass(".Percentage").addClass(".Percentage" + i);
应该是:
$(this).removeClass("Percentage").addClass("Percentage" + i);