Javascript基于层次结构获取节点innertext

时间:2013-02-07 06:24:12

标签: javascript html xslt dom

我的HTML看起来像

<li value="0">
 <a href="#">
 <span>DATA TO GET</span><![if gt IE 6]>
 </a><![endif]><!--[if lte IE 6]><table><tr><td><![endif]-->
 <ul>
 <li value="0">
 <a onclick="return showPane('SomePane',this)" href="#">ACTIVE NODE</a>
 </li>
 </ul>

这个html是使用xsl生成的。现在我想使用javascript 获取span标签内的数据。我尝试了以下方法:

var nameParent =  activeTab.parentNode.parentNode.previousSibling;
window.alert(activeTab.innerHTML);
window.alert(activeTab.parentNode.parentNode.previousSibling.childNode);

此处变量 activeTab 传递包含文本ACTIVE NODE的锚。第一个警报提供正确的数据,即 ACTIVE NODE ,但第二个警报显示 undefined 即可。

我认为我正在研究正确的道路和适当的元素。有些人可以指出这里出了什么问题以及我还能做些什么来获得所需的数据。

提前致谢。

2 个答案:

答案 0 :(得分:1)

尝试使用firstChild代替childNode

var nameParent =  activeTab.parentNode.parentNode.previousSibling;
window.alert(nameParent.firstChild.innerHTML);

答案 1 :(得分:1)

试试这个

var nameParent =  activeTab.parentNode.parentNode;
window.alert(activeTab.innerHTML);
window.alert(nameParent.parentNode.children[0].children[0].innerHTML);

我强烈建议在你的Project中使用jQuery,它提供了在dom元素之间轻松导航的方法 .find()和.children(),。parent用于更易读的代码。

由于