<li id="li0" class="v1 ON"><div id="d0"><h3><a data-ltc="store-link-0" href=".?bID=2654" onclick="storeLocatorLite.showHideLi(0);return storeLocatorLite.getStoreDetails(2654, 0);"><b title="2654" class="hi">1</b>Test value<span class="distance">1.14 miles from search</span><span class="more"><i></i></span></a></h3></li>
以下JavaScript:
var list = document.getElementsByClassName("v1 ON")[0];
list.getElementsByTagName("a")[0].text
返回字符串:
1.test值距离搜索19.18英里
如何返回&#34;测试值&#34;?
答案 0 :(得分:0)
您可以在文字周围添加范围并为其添加ID。
<a data-ltc="store-link-0" return storeLocatorLite.getStoreDetails(3430, 0);">
<b title="3430" class="hi">1</b><span id='text'>test value</span>
<span class="distance">19.18 miles from search</span><span class="more"><i></i></span></a>
通过id获取文字:
document.getElementById('text');
答案 1 :(得分:0)
a.text
正在产生所有3个文本元素。
list.getElementsByTagName("a")[0].children[0].innerText
产量&#34; 1&#34;
list.getElementsByTagName("a")[0].children[1].innerText
收益&#34;距离搜索1.14英里&#34;
你希望事情在中间。
所以,你可以在中间给出你想要的文本一个小的包装元素,比如一个跨度来找到它,这样就可以了:
答案 2 :(得分:0)
似乎就像你正在尝试只获取元素本身的文本,而不是它的任何子元素。
如果是这样,您需要查看元素childNodes
并搜索文本节点。
var list = document.getElementsByClassName("v1 ON")[0];
var node = list.getElementsByTagName("a")[0];
var nodes = node.childNodes;
var t = "";
for (var i = 0; i < nodes.length; ++i) {
var node = nodes[i];
if (node.nodeType != 3) // TEXT_NODE
continue;
t += node.nodeValue;
}
console.log(t) // prints "test value"
&#13;
<div class="v1 ON">
<a data-ltc="store-link-0">
<b title="3430" class="hi">1</b>test value
<span class="distance">19.18 miles from search</span><span class="more"><i></i></span>
</a>
</div>
&#13;