使用非标准属性

时间:2014-07-19 20:40:27

标签: javascript jquery html

在创建html / jquery应用程序时,我无法在不使用全局变量的情况下传递值。快速示例

1)加载一个包含诸如" playersTable"

等类的表格

2)附加一个唯一的ID,例如" 25"

3)单击表格行并生成一行按钮,这些按钮将根据父级的类和ID执行操作;如查询playerTable WHERE row = 25等

问题是,正如我正在开发的那样,我需要将越来越多的值绑定到父元素(或任何已经具有类和ID的元素),并且我希望避免向类中添加20个内容

当我需要将更多数据附加到我的元素时,我不知道该怎么做。我也使用了属性" value"但后来我想知道是否所有的浏览器都支持它,如果它是不好的做法等等。如果我开始创建自己的属性,它甚至可以工作吗?如

<div id = "2" class = "test" myAttr = "foo"></div>

或者我一般都会以错误的方式解决这个问题?

2 个答案:

答案 0 :(得分:4)

如果不知道为什么你需要将所有数据附加到DOM元素,那么很难给出具体的建议。

首先,我考虑使用data-属性。

其次,如果您动态附加数据,我会考虑使用jQuery的data()方法。

第三,我会考虑你实际需要什么数据,以及什么时候。

第四,也许最重要的是,ID属性可能并不是您想要设置的。

使用data-id元素并以此方式获取ID;简单的数值不是有效的ID。除非您确实需要通过ID引用DOM元素,否则为什么要这么麻烦?通常你真正需要的只是向上(或向下)查看附近的层次结构并找到父行等来提取单个值,例如data("id")

答案 1 :(得分:2)

我建议您使用纯JavaScript element.getAttribute('data-some_attr_name')或jQuery element.data('some_attr_name')使用data- *属性。

浏览器支持:http://caniuse.com/dataset

jQuery数据文档:http://api.jquery.com/data/