Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么赢了';我的按钮不能删除吗?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么赢了';我的按钮不能删除吗?

Javascript 为什么赢了';我的按钮不能删除吗?,javascript,jquery,Javascript,Jquery,为什么它会在开始span标记的末尾生成=“”?为什么按钮不能正确删除?$(this).prev().remove()不是正确的选项吗?如果我们抛开最佳实践,这就是有效的代码 <button onclick="doSomething()">+</button> <span onclick="$(this).remove(); $(this).prev().remove(); oiDelete("Marneus Calgar"); removeCost("Marneus

为什么它会在开始span标记的末尾生成
=“”
?为什么按钮不能正确删除?
$(this).prev().remove()
不是正确的选项吗?

如果我们抛开最佳实践,这就是有效的代码

<button onclick="doSomething()">+</button>
<span onclick="$(this).remove();
$(this).prev().remove();
oiDelete("Marneus Calgar");
removeCost("Marneus Calgar");
selectedItem("Marneus Calgar");
frDelete("Marneus Calgar")" ;="">Marneus Calgar</span>
document.getElementById(“花名册”).innerHTML++=“+\n”+
"" +
str+“
”;
代码无法工作的原因是您正在动态删除具有onclick函数的
span
。这意味着它无法到达
$(this).prev().remove()

我希望这是有道理的


如果你想多跑一英里,你应该把
$(this.remove()
frDelete()函数之后。否则,您调用的4个函数将永远不会被调用。

您弄乱了引号,当然-在末尾调用self-remove代码(!)

还有一个技巧-将这些附加功能封装在一个过程中-它有助于保持代码更干净

document.getElementById('花名册').innerHTML+='+'+

“+str+”
第一件事
$(this).prev().remove()
都是jQuery的功能。如果您没有使用jQuery(您没有标记您的答案或提到它),那么这些函数将无法工作,按钮也不会被删除。至于额外的
=“
尝试将此行中的单引号和分号移动到此处”
“frDelete(\”“+str+“\”)\”;>“
”。您希望它是
“frDelete(\”“+str+“\”)”>“
我喜欢在jQuery可用时如何构建按钮。它位于一个巨大的块中。我对jquery还是相当陌生的。除了在jquery上打上一些标记之外,我还需要做些别的事情吗?为什么单击事件不带按钮?把它放在跨度上似乎很奇怪。我不明白为什么这会抛弃最佳实践。这是正确的。必须切换函数顺序。@Bowhart我认为这是因为在一个字符串中混合创建HTML和JavaScript是不可读和不可维护的。实际上,我喜欢将HTML和JavaScript放在一起,因为这比使用jQuery添加每一位和每一个片段的成本都要低。但我不确定这是否是最佳实践。我只是喜欢偷工减料哈哈。我承认,我对我的代码看起来并不激动:(谢谢你的建议,我会试试看!我明白你所说的。现在说得通了facepalm@StephanusYanaputra非常正确,而且代码可能会更长、更详细。但是,一个好处是,任何了解JS的开发人员都可以快速进入并对您的代码有一个基本的了解。当前的代码3个月后,它的可读性将大大降低(即使是@liz)。就像内联演示一样,它来自哪里?
<button onclick="doSomething()">+</button>
<span onclick="$(this).remove();
$(this).prev().remove();
oiDelete("Marneus Calgar");
removeCost("Marneus Calgar");
selectedItem("Marneus Calgar");
frDelete("Marneus Calgar")" ;="">Marneus Calgar</span>
document.getElementById("roster").innerHTML += "<button onclick=\"doSomething()\">+</button>\n" +
                                                "<span onClick=\'$(this).prev().remove();" +
                                                "$(this).remove();" +
                                                "oiDelete(\"" + str + "\");" +
                                                "removeCost(\"" + str + "\");" +
                                                "selectedItem(\"" + str + "\");" +
                                                "frDelete(\"" + str + "\")\'>" +
                                                str + "</span><br>";