我有幾個HTML元素我追加哈希喜歡這樣:我可以通過jQuery訪問存儲在html元素數據屬性中的散列嗎?
<p class='message' data-dependencies={'#first':{'equal':'Yes'}}>
Relevant Content
</p>
使
$(".message").first().data("dependencies")
回報
{'#first':{'equal':'Yes'}}
但作爲一個哥們剛指出,對我來說,這個值是一個字符串。所以自然下面描述的過濾器很難用它。
過濾器的目標是能夠抓取具有指定鍵的元素,在本例中爲「#first」。
$el.children().find("*").filter(function(){
var dependency_hash = $(this).data("dependencies");
if(dependency_hash != undefined && "#first" in dependency_hash){
return true
}
});
是否有經由數據對象通過或有另一種辦法可以構造數據,以便完成的能夠選擇基於所述關鍵要素相同的手段來訪問該散列的方法嗎?
如果你只關心他們是否有一個鍵,然後返回'dependency_hash.indexOf( 「 '#第一'」)= - 1;!'應該這樣做。如果您需要實際獲取值或將其用作對象,那麼'dependency_hash = JSON.parse(dependency_hash);'將從字符串中創建一個對象。 _除了有效的JSON應該使用雙引號,而不是單引號 - 你能翻轉雙引號和單引號嗎? 'data-dependencies ='{「#first」:{「equal」:「Yes」}}'' – nnnnnn
你想通過將數據存儲在DOM元素上來完成什麼?可能有更好的方法來做到這一點。像這樣將狀態信息存儲在DOM中通常是一種不好的做法。 – justspamjustin
它與狀態無關,它與顯示屬性有關。 – biagidp