【发布时间】:2013-03-05 16:27:18
【问题描述】:
最近,我在 Rails 应用程序中遇到了 HTML 自定义数据属性的问题。我使用以下模式向 html 标记添加一些数据属性,并稍后在我的 javascript(jQuery) 代码中使用它们:
= %a.name{ href: "url.com", data: {first_name: "ben", last_name: "amsalem} }
在 javascript 代码中,我访问了这些属性:
alert($(".name").data("first_name") + " " + $(".name").data("last_name"));
在我的开发环境中,它运行良好,我得到了预期的结果(过去我的生产环境也是如此),但在我当前的生产版本中,我得到“未定义”的值。 我检查了页面的 HTML 源代码,发现现在有类似的内容:
<a class="name" href="url.com" data-first-name="ben" data-last-name="amsalem" />
代替:
<a class="name" href="url.com" data-first_name="ben" data-last_name="amsalem" />
为什么会这样?是什么导致了这种变化?
【问题讨论】:
-
看起来它现在更正确,要访问它,您需要
.data("lastName")您更新rails了吗?这或许可以解释这种变化。 -
属性名最好不要使用下划线。我确信在 MVC 中 Html Helpers 会将下划线转换为破折号。更容易使用
data-firstname例如 -
他在这里使用下划线是对的,因为你不能在符号中使用破折号,而且这种语法真的很丑
:"first-name"。 -
您将如何在模型/控制器中访问此数据属性?
标签: jquery ruby-on-rails html custom-data-attribute