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

时间:2015-06-15 16:22:15

标签: javascript jquery xml

我正在通过一个html结构来获取我需要的值。它似乎是一个" NamedNodeMap"我已经接到了这个电话:

ui.handle.attributes.getNamedItem("data-value")

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

data-value="12:00 AM"
    ->"12:00 AM"

我需要在早上12点到凌晨#34;作为一个值,字符串,任何东西都会起作用。我只是不知道如何得到它。我的电话结束时的.value不起作用,我也试过.text和许多其他的东西。

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

enter image description here

然后:

html markup

html标记:

enter image description here

2 个答案:

答案 0 :(得分:10)

  

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

.attributesAttribute nodesNamedNodeMap,这是一个非常弃用的界面。如果您确实想要使用此属性,则属性节点的.value.nodeValue.textContent属性应该产生您所追求的文本值:

ui.handle.attributes.getNamedItem("data-value").value // "12:00 AM"

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

ui.handle.getAttribute("data-value") // "12:00 AM"

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

ui.handle.dataset["value"] // "12:00 AM"

答案 1 :(得分:4)

当您使用jQuery时,有very simple way来获取data- *属性:

$('element').data('key');

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

$('#ID').data('value');

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

ui.handle.data('value');

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

$(ui.handle).data('value');