文本「珍珠」和「菱形」是存儲在localStorage中的數組中的元素。我找不到任何有用的資源來幫助我從localStorage中獲取數據,因此我可以在rails中顯示和處理數據。因此,我在我的application.js文件中編寫了一個函數來幫助我找到文本和周圍的類。使用JQuery方法查找類。在rails應用程序中使用JavaScript文件
以下是html中的信息。
<div class="ruby-gem">
<a target="_blank" href="https://www.website.com/pearl">pearl</a>
<img class="star-pic" src="/assets/star-gray.png" alt="star pic">
</div>
<div class="ruby-gem">
<a target="_blank" href="https://www.website.com/diamond">diamond</a>
<img class="star-pic" src="/assets/star-gray.png" alt="star pic">
</div>
這是我在application.js文件中的函數。現在變量findSrc是未定義的。
function checkStorage(){
var storage = JSON.parse(localStorage.getItem("rubygems"))
var gems = $(".ruby-gem a").map(function(){
return $(this).text()
}).get()
for (var i = 0; i < gems.length; i++){
if(storage.includes(gems[i])){
var gemFavorite = gems[i]
var findDiv = $("a:contains(gemFavorite)")
var findImgClass = findDiv.next()
var findSrc = $(findImgClass).find("img").attr("src")
if(findSrc == "/assets/star-gray.png"){
$(findImgClass).attr("src", "/assets/star-blue.png")
}
}
}
}
最終目標是如果項目位於localStorage中,則將圖像從灰星更改爲藍星。這可能不是最好的辦法,但我無法找出更好的解決方案。
任何意見將不勝感激。
'$(「A:含有(gemFavorite) 「)',不會自動將變量gemFavorite的內容切換到該點,喲你需要做實際的字符串連接或使用模板文字。 –