我有一个DOM
结构,如下所示,不断重复
<label>hello world</label>
<span class="labelVal">
john and tomato enterprise
<span id="more" class="map" onclick="showAbc('3631381');" style="color: #c0392f;">+More</span>
<span id="ent" style="display: none;">
good will and enterprise
</span>
<span class="seeMap" onclick="stop=true;" style="display: none; color: #c0392b;">
some next coming</span>
</span>
我想从john and tomato enterprise
抓取html
。当我console.log()
我能够看到innerText:"john and tomato enterprise +More"
我的问题是如何得到它。这是console.log()
图片
这是一个小提琴:https://jsfiddle.net/ov09jye4/2/
请看jsfiddle。我不知道如何删除片段(所以它仍然存在)
console.log($('label:contains("hello world")').next('span'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<label>hello world</label>
<span class="labelVal">
john and tomato enterprise
<span id="more" class="seeOnMapLink" onclick="showAbc('3631381');" style="color: #c0392b;">+More</span>
<span id="moreauthorisedDelerDesc3631381" style="display: none;">
good will and enterprise
</span>
<span class="seeMap" onclick="stop=true;" style="display: none; color: #c0392b;">
some next coming</span>
</span>
答案 0 :(得分:0)
您可以使用.contents()
获取包含文本节点的子节点,然后使用.get(index)
定位第一个文本节点以获取基础DOM元素并使用nodeValue
属性。
//Get the underlying DOM element
var element = $('label:contains("hello world")').next('span').contents().get(0);
//Get the node value
var value = element.nodeValue;
答案 1 :(得分:0)
如果您的HTML块与您显示的完全相同,则可以拾取html内容并将其删除,如下所示:
$('.labelVal').html().replace(/<span.*/,'');