如何存储data- *属性

问题描述 投票:0回答:1

我有一些javascript,我加载在我的头脑中。我想引用一些数据属性。

  <meta id="pendo_data" data-user-id="<%= current_user&.id %>"
       data-user-email="<%= current_user&.email %>"
       data-account-id="<%= current_account&.id %>"
       data-account-name="<%= current_account&.name %>"
  />

然后在javascript我可以做:

$(#'pendo_data').data('user-id')

<meta>似乎是错误的标签。在<div>不允许使用<head>s。

这里的最佳做法是什么?

谢谢!

javascript jquery html ruby-on-rails
1个回答
2
投票

如果你需要它们,你可以将它们放在<html>元素上。这样他们就可以立即为你的脚本服务,而且你不需要使用超出预期用途的元素。

<html>元素可通过document.documentElement访问。

<!doctype html>
<html data-user-id="<%= current_user&.id %>"
      data-user-email="<%= current_user&.email %>"
      data-account-id="<%= current_account&.id %>"
      data-account-name="<%= current_account&.name %>" >
  <head>
    <script>
    for (const p in document.documentElement.dataset) {
      console.log(`${p} = ${document.documentElement.dataset[p]}`)
    }
    </script>
  </head>
  <body></body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.