jQuery .remove() issue



我尝试用JS和jQuery制作一个小游戏(注意:我是这两种语言的初学者(,我做了一个功能来删除你的保存。我使用一些文本来确保他们确认他们的行动。当我去删除它时,它就是不会。这是我的 HTML:

function wipeSave() {
p.innerHTML = "Are you sure you want to wipe(delete) your save? <button onclick='deleteSave()'>Yes</button> <button onclick='leave()'>No</button>";
$('.settings').append(p);
}
function leave() {
$('.settings').remove(p);
}
function deleteSave() {
localStorage.setItem('coins', 0);
localStorage.setItem('cps', 0);
localStorage.setItem('cpc', 1);
localStorage.setItem('cpcPrice', 25);
localStorage.setItem('cpsPrice', 50);
$('.settings').remove(p);
load();
//Everything was declared in another JS file that is loaded before this one.
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="hide settings">
<button onclick="wipeSave()">Wipe your save (think about it twice, you won't be able to get it back) 
</button>
</div>

我尝试了其他解决方案,但没有一个真正奏效。

你应该在<p id="test"></p>之外创建一个 p 标签

并使用$('.settings p').remove();删除 p 标签

var p = document.getElementById("test");
function wipeSave() {
p.innerHTML = "Are you sure you want to wipe(delete) your save? <button onclick='deleteSave()'>Yes</button> <button onclick='leave()'>No</button>";
$('.settings').append(p);
}
function leave() {
$('.settings').remove(p);
}
function deleteSave() {
localStorage.setItem('coins', 0);
localStorage.setItem('cps', 0);
localStorage.setItem('cpc', 1);
localStorage.setItem('cpcPrice', 25);
localStorage.setItem('cpsPrice', 50);
$('.settings p').remove();  
load();
//Everything was declared in another JS file that is loaded before this one.
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="test"></p>
<div class="hide settings">
<button onclick="wipeSave()">Wipe your save (think about it twice, you won't be able to get it back) 
</button>
</div>

您的变量p仅绑定到wipeSave函数的作用域! 因此,当您想从.settings元素中删除<p>标签时,您需要像这样选择它:

$('.settings').find('p').remove(); // find the <p> tag in your settings container and remove it

试试这个。

取代

$('.settings').remove(p);

$('.settings').remove();

最新更新