我有兩個視圖頁面。在這兩頁上,我都有一張帶有星號旁邊圖片的項目列表。在第一頁上,我可以點擊這個星星,它會變成藍色或灰色。在第二頁上,如果星星是藍色的,我點擊它,我想刪除關聯它的父div。它會在我重新加載整個頁面時刪除它,但不會立即刪除它。我怎樣才能立即從頁面上刪除它,而無需點擊重新加載按鈕?在JavaScript或JQuery中刪除元素
這是在我的result.html.erb,我想刪除父div。要清楚的是,當我點擊與鑽石div相關的星號時,我想刪除整個div並單獨留下珍珠。
<div id="result">
<div class="diamond">
<a target="_blank" href="www.website.com">diamond</a>
<img class="star-pic" src="/assets/star-blue.png" alt="star pic">
</div>
<div class="pearl">
<a target="_blank" href="www.website.com">pearl</a>
<img class="star-pic" src="/assets/star-blue.png" alt="star pic">
</div>
</div>
這是我的application.js
var favoriteGems = JSON.parse(localStorage.getItem("gems")) || []
function changeStar(){
if($(this).attr("src") == "/assets/star-gray.png"){
$(this).attr("src", "/assets/star-blue.png")
favoriteGems.push($(this).closest("div").first().text().replace(/\s+/g, ''))
localStorage.setItem("gems", JSON.stringify(favoriteGems))
}
else if ($(this).attr("src") == "/assets/star-blue.png"){
$(this).attr("src", "/assets/star-gray.png")
favoriteGems = favoriteGems.filter(item => item !== $(this).closest("div").first().text().replace(/\s+/g, ''))
localStorage.setItem("gems", JSON.stringify(favoriteGems))
$("#result").remove("."+item)
$("#result").show()
}
}
$(".star-pic").on("click", changeStar)
我已經試過
$("#result").remove("."+item)
location.reload()
而且也不管用。
任何指導將不勝感激。
感謝您的幫助!這是錯誤的價值。我還將$(「#result」)。show()轉換爲location.reload()。現在它正在做我想做的事情。出於某種原因$(「#result」)。show()不起作用。 –