Javascript 全局函数未执行
我的脚本创建了一个div,并添加了一个函数,可以在单击时删除这个div,但它不起作用Javascript 全局函数未执行,javascript,jquery,Javascript,Jquery,我的脚本创建了一个div,并添加了一个函数,可以在单击时删除这个div,但它不起作用 function del(el) { $("#"+el).remove(); } function create() { var element = document.createElement("div"); var att = document.createAttribute("onclick"); att.value = "del(this.id)"; el
function del(el) {
$("#"+el).remove();
}
function create() {
var element = document.createElement("div");
var att = document.createAttribute("onclick");
att.value = "del(this.id)";
element.setAttributeNode(att);
$(element).attr('id', "someID");
document.getElementById("someContainer").appendChild(element);
}
是的,是的,我知道这不是添加函数的最佳方式,但我想这样做。
仅供参考-执行create()
后,DIV显示良好。我检查了它,它确实有正确的ID和onclick=“del(this.ID)”
属性,但单击它后什么也没有发生。我反复检查并在onclick属性中添加了alert(“我正在工作”)
,这就成功了。我没有收到任何错误。过去,.remove()
工作正常,但现在不行(可能是因为我这次添加函数的方式)
编辑:当单击div时,
del()
似乎没有执行。您已经用jQuery发布了这个,但是您显示的大部分是香草。至于你最初的问题
函数del(el){
$(“#”+el).remove();
}
函数create(){
var元素=document.createElement(“div”);
var att=document.createAttribute(“onclick”);
att.value=“del(this.id)”;
元素setAttributeNode(att);
$(element.attr('id','someID');
document.getElementById(“someContainer”).appendChild(元素);
$(element.html('DIV CREATED!').css('background-color',String.randColorHex());
}
创建()代码>
#someContainer>div{高度:10em;宽度:100%;}
请发布您的“HTML”。。。并设置一个小提琴来重新创建问题函数del()
中的el
是什么?如果传入的是实际id,则您可能正在尝试访问字符串值的id
属性。很可能,.remove不起作用。多做一点调试。您正在做一些错误的事情(除了糟糕的编码实践之外),这在您提供的代码中并不明显。请在您的问题中包含足够的信息,以便重新创建问题。@SpYk3HH:最好将非答案发布为评论(如果有的话)以获得投票。发布您最喜欢的jQuery解决方案并不能解决问题……即使在编辑之后,它仍然只是一个“对我有用”的答案。@SpYk3HH“编辑:单击div时似乎没有执行del()。“哦,不,听起来像是使用了警报,但del
没有。这表明del
是在全局之外的某个地方定义的。问题完全存在于其他地方,我解决了它。由于你们提供的所有信息,我将此答案标记为已接受,我需要关闭此操作。谢谢。