2014-07-19 39 views
1

我在创建html/jquery应用程序时无法在不使用全局变量的情况下传递值时遇到问题。快速的例子使用非标准属性

1)装载表一类如“playersTable”

2)安装一个唯一的ID,如“25”

3)点击表格行和产卵的一排将根据父级的类和ID执行操作的按钮;如查询playersTable WHERE行= 25等

的问题是,因为我正在开发,我需要配合越来越多值到父元素(或已具有类和ID的任何元件)和我想避免将20件东西添加到课程中

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

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

或者我一直在谈这一切错误的方式吗?

回答

3

不知道为什么需要附上所有的数据到DOM元素很难给出具体的建议。

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

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

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

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

使用data-id元素并获得该ID的方式;一个简单的数字值不是一个有效的ID。除非你真的需要通过ID来引用DOM元素,为什么呢?通常你只需要查看(或下)附近的层次结构并找到父行等来提取单个值,如data("id")

+0

谢谢,这就是我一直在寻找的。然而,我遇到的一个问题是,我正在使用来自PHP的数据填充我的网页。我将数据附加到Id和Class之类的东西上,因为这是我看到将主键传递给html以供jQuery使用的唯一方式。 – user3822370

+0

附加数据服务器端以便在JavaScript中使用*完全是用于HTML中的用例数据属性。请参阅https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes – pwdst

2

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

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

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

+0

它看起来像我会疏远IE10和低级用户,但。部分支持意味着什么? – user3822370

+0

@ user3822370数据属性将与Internet Explorer的不推荐版本一起使用,而不是JavaScript数据集方法。如果你使用getAttribute或jQuery.attr()方法,这将工作得很好。 – pwdst

+0

谢谢。当你说JavaScript数据集方法时,你能更精确吗? – user3822370