【问题标题】:HTML 5 dataset issueHTML 5 数据集问题
【发布时间】:2014-12-13 18:53:40
【问题描述】:

谁能告诉我为什么下面这行代码会抛出错误

$('#id').dataset.assoc

这两个没有?

$('#id').data("assoc")
$('#id').dataset.file_id

跟assoc这个词有关系吗?

【问题讨论】:

  • 也许是因为它不是这样工作的?
  • 首先,错误说明了什么? 其次,三行之间应该有什么关系?第一个是访问对象属性,第二个是调用函数,第三个是完全不同的属性(dataset 不是data)。
  • 如果最后一个真的有效,我很惊讶?
  • 我在一个添加了dataset 属性的自定义插件上的钱,虽然它包含file_id,但它根本不包含assoc

标签: javascript jquery html tags


【解决方案1】:

正如 adeneo 和 Banana 在 cmets 中提到的,第一个和最后一个不应该工作。在jsFiddle 中都进行了尝试,并且都抛出了错误。这是因为.dataset 不在 jQuery 中。您必须有代码在内部或外部将数据集添加到该 jQuery 对象。

以下是类似的语法,但应该可以工作(只有您提供的详细信息,您的代码不应该工作):

document.getElementById("id").dataset.assoc
$("#id")[0].dataset.assoc

这是由于data-* attributes in HTML5

【讨论】:

  • 我不确定为什么我的一些数据名称有效,而另一些则不正确,也许您是正确的,并且有代码在某处对其进行了扩展。无论哪种方式,我都希望能更好地理解这一点,感谢您花时间澄清。
  • 不客气,我还更新了小提琴以显示 .dataset 抓取 data-* 值(以前它显示为未定义,因为它们从未真正设置过)。如果您深入研究并找到问题的根源,我不介意听到究竟是什么导致了问题。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多