为什么在这种情况下jQuery remove()不会工作?

时间:2010-08-14 17:07:27

标签: javascript jquery dom

我试图将canvas元素添加到DOM中,然后在设定的时间后删除。调用killbox()函数,但不删除该元素。我相信我的语法正确,并且删除动态添加的DOM元素存在一些潜在的问题。

// con是console.log()

的缩写
function spawnCanvas(e) {
   con(e);
   var boxheight=50;
   var boxwidth=50;   
   var xpos = e.clientX - boxwidth/2;
   var ypos = e.clientY - boxheight/2;
   var id = xpos.toString() + ypos.toString();
   con("id:" + id);
   var tag = "<canvas width='" + boxwidth +
             "' height='" + boxheight +
             "' style='position:absolute; border:1px solid #000; left:" + 
             xpos + "px; top:" + ypos + "px;' id='" + id + "'></canvas>";
   con(tag);
   var t = $(tag);
   $("body").append(t);
   var p = setTimeout("killbox(" + id + ")", 1500);


}


function killbox(id){
    con("in killbox. id:" + id);
    $('#id').remove();

}

3 个答案:

答案 0 :(得分:1)

killbox内,您要删除文字ID为id的元素。而是尝试;

$('#' + id).remove();

上面将删除具有“id”变量设置为的id的元素。

答案 1 :(得分:0)

您确定不想要$("#" + id).remove();吗?

答案 2 :(得分:0)

因为您正在使用ID为id的元素进行搜索,但您想要从函数中传递参数

function killbox(id){
    con("in killbox. id:" + id);
    $('#'+id).remove();

}