在div中隐藏数据的替代方法?

Orb*_*bit 7 html javascript jquery

我经常发现自己将对象数据存储在隐藏的dom元素中.我很好奇是否有办法将这些数据附加到dom节点本身.当我尝试"动态"创建属性时,它似乎不起作用.使用this.something访问属性会更容易,而不是访问子中包含的html.我觉得我应该知道怎么做,但我不知道.谢谢.

Dav*_*ang 9

绝对有!jQuery的.data().

$('#someId').data('myData', someValue); // To store the data
$('#someId').data('myData'); // To retrieve it again
Run Code Online (Sandbox Code Playgroud)

任何JavaScript变量都可以存储为数据 - 它不仅限于字符串.

请注意,这实际上并没有像您所说的那样将数据附加到DOM节点(应该避免).jQuery保存自己存储的所有数据以及要将其附加到的DOM节点的缓存.所以,它不一样domNode.myData = someValue.

  • 值得一提的是``data()`方法将使用HTML5`data-`属性作为存储/检索机制.可以使用jQuery可以读取的数据属性编写标记.EG:`<div id ="animal-1"data-animal ="cat"> Cat </ div>``data-animal`属性的值可以像这样检索:`alert($('#animal -1 ')的数据(' 动物')); // cat` (2认同)