我有2个按钮用于创建div,另一个用于删除添加的div。添加一个新div没有问题但是当我尝试删除它时我不能使用div:eq(index)因为它没有加载DOM这里的代码
$(document).ready(function(e) {
$(".inner").eq(1).css("background-color","#0C9");
$(".inner").eq(2).css("background-color","#F00");
$(".inner").eq(3).css("background-color","#990");
$("#add").click(function(){
$(".content").append("<div class='inner'><a href='#' class='rem'>remove this inner</a></div>");
});
$(document).on("click","a.rem",function(e){
e.preventDefault();
var num = $("a.rem").index(this);
//alert(num);
$(".inner").eq(num).remove();
});
});
</script>
jsfiddle上的代码:http://jsfiddle.net/7uzSv/3/
答案 0 :(得分:1)
$('.content').on('click', 'a.rem', function(e){
e.preventDefault();
$(this).closest('.inner').remove();
});
这是一个不同的解决方案,但在我看来更有效。
答案 1 :(得分:0)
删除不存在的元素没有任何意义。
所以检查是否存在
var num = $("a.rem").index(this);
var checker= $(".inner").eq(num);
if(typeof checker !== 'undefined' && checker !== null) {
$(".inner").eq(num).remove();
}
答案 2 :(得分:0)
试一试后,
$("#add").on("click",function(){
$(".content").append("<div class='inner'><a href='#' class='rem'>remove this inner</a></div>");
});
$(document).on("click","a.rem",function(e){
e.preventDefault();
$(this).parent('.inner').remove();
});
答案 3 :(得分:0)
$("#add").click(function(){
$(".content").append("<div class='inner'><a href='#' class='rem'>remove this inner</a></div>");
$(".inner").eq(1).css("background-color","#0C9");
$(".inner").eq(2).css("background-color","#F00");
$(".inner").eq(3).css("background-color","#990");
});
$(document).on("click","a.rem",function(e){
e.preventDefault();
var num = $("a.rem").index(this);
$(".inner").eq(num).remove();
});