2011-07-29 30 views
1

我对JavaScript很新颖,我需要获取节点的值为firstvalue,以便我可以在脚本中使用它。任何人都可以告诉我如何得到那个价值?Javascript:获取节点值

<div id="myDiv"> 

<span id="firstValue"> 5.22 <span id="nestedValue"> 500 </span></span> 

</div> <!-- myDiv --> 
+0

你想要内部html(它是嵌套的)还是第一个值,就像文本内容一样。如果是后者,应该在什么情况下检索' 5.22 foo '? – Dilettant

+0

@Dilettant:我只想检索5.22并忽略其他所有内容。 – haunted85

回答

4

document.getElementById("firstValue")将让你的<span>参考。这有两个子节点,您可以通过数组(如childNodes属性)引用它,或者在此情况下只需使用firstChildlastChild属性。例如,以下将返回字符串“5.22”:

document.getElementById("firstValue").firstChild.nodeValue; 
+0

所以我可以用'firstChild'(或者更普遍的'childNodes [i]')去树下,得到我需要的任何价值,谢谢你我会困惑很多,你让我很头疼。 – haunted85

2
var nodeValue = document.getElementById("firstValue").innerHTML 

这将= “5.22 <span id="nestedValue"> 500 </span>

+0

所以没有办法只捕获这个值? – haunted85

+0

我会让自己变得简单,而不是将这两个项目嵌套在一起。 –

0

下面是实现这一目的的简单功能,并与处理的情况下错误的跨度将不存在或将是空的:

function getFirstValue() { 
    var spanFirstValue = document.getElementById("firstValue"); 
    if (spanFirstValue) { 
     var textNode = spanFirstValue.childnodes[0]; 
     if (textNode) { 
      return textNode.data; 
     } 
    } 
    return ""; 
} 
1

许多JavaScript库在访问DOM元素方面都有很大帮助,比如:prototype,dojo,jQuery等等。在原型中,你可以输入:$('firstValue').firstChild.nodeValue