这是我的剧本
var newclass = 0;
jQuery("#addexperience").click(function(){
$("#expclone").clone().find("input:text").val("").end().prependTo( ".exp_clone" );
$(".ongoing").each(function(){
$(".ongoing").addClass("newclass"+newclass);
newclass++;
});
});
我想克隆一个特殊的div,并在clone元素上添加一个类。 但每次都附加addClass,
意味着在第一个克隆中添加了:newclass1,在第二个克隆中添加了:newclass1 newclass2;等...... ..
我想在第二个克隆中只使用newclass2,在thire clone中只需要newclass3等等。
答案 0 :(得分:0)
您应该在$(this)
:
.each
$(".ongoing").each(function(){
$(this).addClass("newclass"+newclass);
newclass++;
});
或者您甚至不需要变量newclass
,.addClass
接受函数作为参数:
$(".ongoing").addClass(function(index) {
// index is start from 0
return "newclass" + (index + 1);
});
答案 1 :(得分:0)
这是因为每次克隆元素时,即使它已经存在,它也会将类添加到每个元素中。你所做的是,克隆元素后,获取最后一个克隆元素,addClass
仅为此。删除.each()
功能并尝试:
$(".ongoing").last().addClass('newClass'+newclass);
newclass++;
答案 2 :(得分:0)
更改此行:
$(".ongoing").addClass("newclass"+newclass);
为:
$(".ongoing").removeClass().addClass("newclass"+newclass);
它会删除所有以前的.ongoing
类,并在其中添加新类。
如果您想要.ongoing
课程,请尝试这样:
$(".ongoing").removeClass().addClass("ongoing newclass"+newclass);
答案 3 :(得分:0)
试试这个,
var newclass = 0;
jQuery("#addexperience").click(function(){
$clone=$("#expclone").clone()
$clone.find("input:text").val("");
$clone.find(".ongoing").removeAttr('class') // remove all classes
.addClass('ongoing'); // again add ongoing class
$clone.find(".ongoing").each(function(){
$(this).addClass("newclass"+newclass);
newclass++;
});
$clone.prependTo(".exp_clone");
});
但是,最好是提供一个新的id
而不是新的class
。