【问题标题】:Get Element with Hyphen in Javascript [duplicate]在Javascript中使用连字符获取元素[重复]
【发布时间】:2016-09-18 05:52:48
【问题描述】:

HTML sn-p:

<input title="List" data-id="1698481">

在 IE 11 控制台中,我一直在尝试各种命令,但没有连字符的所有内容都会正确返回,直到我点击“data-id”。

document.getElementsByTagName("input")[0].title
"List"
document.getElementsByTagName("input")[0].data-id
'id' is undefined

根据这个主题的其他线程,我尝试了其他语法(驼峰式等),但我仍然无法让它返回任何值

document.getElementsByTagName("input")[0].dataId
undefined
document.getElementsByTagName("input")[0].["data-id"]
Expected identifier
document.getElementsByTagName("input")[0].['data-id']
Expected identifier

任何帮助将不胜感激。

【问题讨论】:

标签: javascript


【解决方案1】:

data-* 属性很特殊:

document.getElementsByTagName("input")[0].dataset.id

data-* 属性从连字符转换为驼峰式,因此data-test-attribute="test" 相当于:

htmlElement.dataset.testAttribute; // test

有关详细信息,请参阅the MDN on dataset

【讨论】:

  • 也可以,但不像.getAttribute()那样得到广泛支持。
  • @Gothdo 你是对的,但支持范围很广:caniuse.com/#feat=dataset
  • 谢谢!我想知道为什么 ["data-id"] 会在 console.log 中未定义,取消链接 ["title"] / .title。
【解决方案2】:

使用.getAttribute():

document.getElementsByTagName("input")[0].getAttribute("data-id")

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2013-06-11
    • 2015-06-09
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多