Javascript 在类属性中保存数据是好是坏

Javascript 在类属性中保存数据是好是坏,javascript,Javascript,我正在使用class属性保存数据。我知道使用数据属性是现在的标准,但我想知道在类属性中存储它们是否会有任何问题。我想使用类,因为旧的浏览器不支持数据属性。我将URL保存在其中,然后使用javascript提取这些URL。 例如 并得到如下结果: document.getElementsByClassName('mdiv')[0].getAttribute('class').split(“”[1] 您不需要为此使用class属性。您可以使用任何其他属性。您不需要使用class属性。您可以使用任何

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


并得到如下结果:
document.getElementsByClassName('mdiv')[0].getAttribute('class').split(“”[1]

您不需要为此使用
class
属性。您可以使用任何其他属性。

您不需要使用
class
属性。您可以使用任何其他属性。

老实说,我不会担心旧浏览器不支持数据属性,除非您期望旧浏览器带来大量流量,否则再也不可能使用这么旧的浏览器了

但是,如果您真的需要,我建议您使用一个环绕在div周围的锚,然后从中拉出href。只是稍微干净一点

<a class="someclass" href="http://google.ca">
  <div class="mydiv"></div>
</a>
至于抓取它的href:

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

老实说,我不会担心旧浏览器不支持数据属性,除非你期望旧浏览器有大量的流量,否则在这么旧的浏览器上工作是不可行的

但是,如果您真的需要,我建议您使用一个环绕在div周围的锚,然后从中拉出href。只是稍微干净一点

<a class="someclass" href="http://google.ca">
  <div class="mydiv"></div>
</a>
至于抓取它的href:

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

不要为此使用类。使用
数据-*
属性

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

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

但是,现代浏览器允许您通过
dataset
访问
data-*
属性。这在旧浏览器中不受支持。只需避免使用旧的DOM属性方法。

不要为此使用类。使用
数据-*
属性

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

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


但是,现代浏览器允许您通过
dataset
访问
data-*
属性。这在旧浏览器中不受支持。请避免使用旧的DOM属性方法。

哪个旧浏览器不支持数据属性?它们没有什么特别之处,只是确保不要使用
dataset
@Oriol IE8仅“部分”支持它。旧版IE不支持它。根据,IE6完全支持它。哪个旧版浏览器不支持数据属性?它们没有什么特别之处,只是确保不要使用
dataset
@Oriol IE8仅“部分”支持它。旧版IE不支持它。根据,IE6完全支持它。谢谢,但避免使用数据属性是我的目标,因为我读到旧版浏览器不支持它,你怎么看?还有旧的移动浏览器,它们支持吗?@BA你说的旧是什么意思?多大年纪?我想你会没事的。@yuriy636谢谢。它说对IE8和旧IEs的部分支持不支持。@BA在caniuse中,您需要单击“全部显示”。它显示所有浏览器至少都有部分支持。我读了一些,看起来IE中的部分支持是由于缺乏对
设置
数据的支持。但是它可以通过使用
getAttribute()
来读取,谢谢,但是避免使用数据属性是我的目标,因为我读的旧浏览器不支持它,你怎么看?还有旧的移动浏览器,它们支持吗?@BA你说的旧是什么意思?多大年纪?我想你会没事的。@yuriy636谢谢。它说对IE8和旧IEs的部分支持不支持。@BA在caniuse中,您需要单击“全部显示”。它显示所有浏览器至少都有部分支持。我读了一些,看起来IE中的部分支持是由于缺乏对
设置
数据的支持。但是可以使用
getAttribute()
来读取它,谢谢。我不想使用的原因是因为SEO原因,因为页面上有太多的这些传出链接,所以我只想使用javascript添加它们。如果是这样的话,我会坚持使用data属性。IE<8现在很少使用,不值得麻烦。你可以整天坐在这里想出解决方案,但它们都会很混乱。例如,在div中添加一个隐藏跨距并从中获取链接。谢谢。我不想使用的原因是因为SEO原因,因为页面上有太多的这些传出链接,所以我只想使用javascript添加它们。如果是这样的话,我会坚持使用data属性。IE<8现在很少使用,不值得麻烦。你可以整天坐在这里想出解决方案,但它们都会很混乱。例如,在div中添加一个隐藏跨距并从中获取链接。