使用非标准属性
Using non-standard attributes
当我创建html/jquery应用程序时,我在不使用全局变量的情况下传递值时遇到麻烦。简单的例子
1)加载一个表类,如"playersTable"
2)附加一个唯一的ID,如"25"
3)单击表行,生成一行按钮,这些按钮将根据父类和ID执行操作;如查询playersTable WHERE row = 25等
问题是,随着我的开发,我需要将越来越多的值绑定到父元素(或任何已经具有类和ID的元素),并且我想避免向类 添加20个东西我不知道该怎么做,当我需要附加更多的数据到我的元素。我也使用了属性"value",但我想知道是否所有的浏览器都支持它,如果这是不好的做法,等等。如果我开始创建自己的属性,它还能工作吗?如
<div id = "2" class = "test" myAttr = "foo"></div>
还是说我的思路都错了?
如果不知道为什么需要将所有数据附加到DOM元素中,则很难给出具体的建议。
首先,我会考虑使用data-
属性。
第二,如果你动态地附加数据,我会考虑使用jQuery的data()
方法。
第三,我会考虑你真正需要什么数据,什么时候需要。
第四,可能也是最重要的,ID属性可能并不是你真正想要设置的。
使用data-id
元素并以这种方式获取ID;简单的数字值不是有效的ID。除非您确实需要通过ID引用DOM元素,否则为什么要这么做呢?通常,您真正需要的是只是查找(或向下)附近的层次结构,并找到父行等,以提取单个值,如data("id")
。
我建议你使用data-*属性,无论是纯JavaScript element.dataset.some_attr_name
还是jQuery element.data('some_attr_name')
。
浏览器支持:http://caniuse.com/dataset
jQuery data docs: http://api.jquery.com/data/
- ES6非结构化中的计算属性-非结构化整体对象
- 获取非标准模式中的子字符串
- 使用Javascript为select标记添加非标准属性
- 在 angularjs 中适应非标准属性
- 替换/限制 CKEDITOR 中的非标准字符
- 树中节点的非标准检查
- 使用非标准REST API的Ember数据
- 使用非标准密钥长度调用CryptoJS.AES.encrypt/decrypt时,如何处理AES密钥
- 为什么在DOM中插入中间非标准元素会破坏flex框
- 解析非标准 JSON
- 如何从angular.js中的非标准目录加载部分文件?
- 我可以使用WebRTC接收非标准RTP流吗?
- 是否有可能本地扩展web API以允许CSSRule.cssText返回非标准css属性
- 使用非标准属性
- 使用jQuery自动完成与非标准选项
- Regexp:排除一个单词,但包含非标准标点符号
- 添加非标准标记属性
- 遍历JavaScript中的非标准对象属性
- 我可以通过Javascript获取非标准CSS属性的值吗
- 意见:在HTML中,可能存在重复的ID或非标准属性