我需要来自命名节点映射的值

con*_*ore 9 javascript xml jquery

我正在通过一个html结构来获得我需要的值.它似乎是一个"NamedNodeMap",我已经得到了这个调用:

ui.handle.attributes.getNamedItem("data-value")
Run Code Online (Sandbox Code Playgroud)

在chromes控制台中打印时显示:

data-value="12:00 AM"
    ->"12:00 AM"
Run Code Online (Sandbox Code Playgroud)

我需要将"12:00 AM"作为值,字符串,任何东西都能正常工作.我只是不知道如何得到它.我的通话结束时.value不起作用,我也试过.text和许多其他的东西.

在扩展句柄和属性之前,继承了ui对象的样子:

在此输入图像描述

之后:

HTML标记

html标记:

在此输入图像描述

Ber*_*rgi 11

.attributes 似乎是一个"NamedNodeMap",我已经调用了 .attributes.getNamedItem("data-value")

.attributesNamedNodeMapAttribute节点,这是一个相当弃用接口.如果你真的想利用这一点,将.value,.nodeValue.textContent属性节点的属性应该得到你后的文本值:

ui.handle.attributes.getNamedItem("data-value").value // "12:00 AM"
Run Code Online (Sandbox Code Playgroud)

但是,标准方法是使用元素的getAttribute方法:

ui.handle.getAttribute("data-value") // "12:00 AM"
Run Code Online (Sandbox Code Playgroud)

使用HTML5,甚至可以专门设计访问数据属性:.dataset DOMStringMap

ui.handle.dataset["value"] // "12:00 AM"
Run Code Online (Sandbox Code Playgroud)


Ton*_*igh 4

当您使用 jQuery 时,有一种非常简单的方法来获取 data-* 属性:

$('element').data('key');
Run Code Online (Sandbox Code Playgroud)

因此,在您的情况下,您需要找到您要定位的元素的 ID 并调用:

$('#ID').data('value');
Run Code Online (Sandbox Code Playgroud)

如果ui.handle是代表单个节点的 jquery 对象,您可以执行以下操作:

ui.handle.data('value');
Run Code Online (Sandbox Code Playgroud)

或者,如果它是 javascript DOM 节点,那么您需要将其包装在调用中$

$(ui.handle).data('value');
Run Code Online (Sandbox Code Playgroud)