保存类属性中的数据好坏

时间:2016-08-02 18:58:05

标签: javascript

我正在使用class属性来保存数据。我知道现在使用数据属性是标准,但我想知道在class属性中存储它们是否存在任何问题。我想使用类,因为旧浏览器不支持数据属性。我正在保存其中的URL,然后使用javascript拉取它们。 例如,

<div class="mdiv http://google.com"></div>
and getting it like:
document.getElementsByClassName('mdiv')[0].getAttribute('class').split(" ")[1]

3 个答案:

答案 0 :(得分:2)

您不需要使用class属性。您可以使用data-

的任何其他perfectly valid in HTML5属性

答案 1 :(得分:1)

老实说,我不担心旧的浏览器不支持数据属性,除非你期望来自旧版浏览器的大量流量,只是不再可行解决旧的浏览器。

但是,如果你真的需要,我可能会建议使用一个缠绕div的锚点,然后从中拉出href。它只是一点清洁。

<a class="someclass" href="http://google.ca">
  <div class="mydiv"></div>
</a>

如果您不希望链接可点击,可以使用某些CSS禁用该链接:

 a.someclass {
  pointer-events: none;
  cursor: default;
}

至于抓住它的href:

document.getElementsByClassName('someclass')[0].href;

答案 2 :(得分:1)

不要使用类。使用data-*属性。

浏览器不关心属性的HTML有效性。没有“数据属性支持”这样的东西。您可以使用属性方法访问它们,属性方法是DOM的一部分,甚至IE6也应该完全支持它们。

element.getAttribute('data-foo');
element.setAttribute('data-foo', 'value');

但是,现代浏览器允许您通过data-*访问dataset个属性。旧版浏览器不支持这种功能。只需避免它并使用旧的DOM属性方法。