在创建html / jquery应用程序时,我无法在不使用全局变量的情况下传递值。快速示例
1)加载一个包含诸如" playersTable"
等类的表格2)附加一个唯一的ID,例如" 25"
3)单击表格行并生成一行按钮,这些按钮将根据父级的类和ID执行操作;如查询playerTable WHERE row = 25等
问题是,正如我正在开发的那样,我需要将越来越多的值绑定到父元素(或任何已经具有类和ID的元素),并且我希望避免向类中添加20个内容
当我需要将更多数据附加到我的元素时,我不知道该怎么做。我也使用了属性" value"但后来我想知道是否所有的浏览器都支持它,如果它是不好的做法等等。如果我开始创建自己的属性,它甚至可以工作吗?如
<div id = "2" class = "test" myAttr = "foo"></div>
或者我一般都会以错误的方式解决这个问题?
答案 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/