我想用JQuery提取Element中的Text
<div id="bla">
<span><strong>bla bla bla</strong>I want this text</span>
</div>
我只想要没有强标签的文字“我想要这个文字”。我怎么能这样做?
答案 0 :(得分:7)
试试这个......
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
$("#bla span").contents().each(function(i) {
if(this.nodeName == "#text") alert(this.textContent);
});
});
//]]>
</script>
这不需要从上下文中删除任何其他节点,并且只会在每次迭代时为您提供文本节点。
答案 1 :(得分:5)
这样做(测试过):
var clone = $("#bla > span").clone();
clone.find('strong').remove();
alert(clone.text());
答案 2 :(得分:4)
karim79方法的变化:
$("span").clone().find("strong").remove().end().text();
或者如果你只是想要根文本而不知道其他标签是什么:
$("span").clone().children().remove().end().text();
还有点长,但我认为这就像你希望的那么短。
答案 3 :(得分:0)
var textFromSpanWithoutStrongTag = $('div#bla > span').text();
<强>更新:强>
var textFromSpanWithoutTextFromStrongTag =
$('div#bla > span').text().replace($('div#bla > span > strong').text(), '');
<强>更新:强>
var text = '';
$("div#bla > span").contents().each(function () {
if(this.nodeType == 3) text = text + this.nodeValue; });
在FF3,IE8,O10b上测试:
<div id="bla">
<span>
<strong>bla bla bla</strong>
I want this
<strong>bla bla</strong>
text
<span>bla bla bla</span>
</span>
</div>