2016-03-08 70 views
0

我希望能够点击一个按钮,添加一个包含另一个按钮,可以点击删除所述div的div。jQuery:追加可移动div

function addPanel(name) { 
    var outer = $("<div id='" + name + "'>"); 
    var inner = $("<button>"); 
    inner.click(function() { 
     $("'#" + name + "'").remove(); 
    }); 

    outer.append(inner); 

    $("#someotherdiv").append(outer); 
} 

当我调用这个函数时,它使用按钮放置新的div。当我点击(新)按钮时,我收到一条错误消息:“#名称”未定义。使用javascript/DOM调试器(chrome)我可以看到新的div存在但未被正确评估为选择器。

我觉得这是非常基本的东西,但我似乎无法得到我的头。

编辑 - 错字脚本固定 - 不是从原来的


编辑

function addPanel(name) { 
 
    var outer = $("<div id='" + name + "'>" + name + "</div>"); 
 
    var inner = $("<button>Delete</button>"); 
 
    inner.click(function() { 
 
    $("#" + name).remove(); 
 
    }) 
 

 
    outer.append(inner); 
 

 
    $("#someotherdiv").append(outer); 
 
} 
 

 
addPanel('div2'); 
 
    
 
$("#addButton").click(function() { 
 
     addPanel('div1'); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 
 

 
</script> 
 
<div id="someotherdiv"> 
 
    Main div 
 
</div> 
 
<button id="addButton">add</button>

回答

3

的问题是用单引号。在按钮的点击事件结束时,您还错过了)。尝试如下。

function addPanel(name) { 
 
    var outer = $("<div id='" + name + "'>" + name + "</div>"); 
 
    var inner = $("<button>Delete</button>"); 
 
    inner.click(function() { 
 
    $("#" + name).remove(); 
 
    }) 
 

 
    outer.append(inner); 
 

 
    $("#someotherdiv").append(outer); 
 
} 
 

 
addPanel('div1'); 
 
addPanel('div2');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="someotherdiv"> 
 
    Main div 
 
</div>

+0

试过这个,没有额外的引号 - 错误信息是相同的“未捕获的错误:语法错误,无法识别的表达式:#newDivHere”(括号错误是我的错字在SO - 不原始代码)**也 - 尝试评估chrome调试器中的新div,表明它在那里不可用。尽管使用DOM浏览器找到它。 – ethrbunny

+0

如果您正确使用我的代码,那么应该没有任何问题。我已经添加了完整的代码片段。 @ethrbunny – Azim

+0

是的 - 我确定我的代码还有其他内容。这似乎很明显。 TY。 – ethrbunny