更新:请查看以下代码:
<div class='parent'>
<div class='first'>whatever content</div>
<div class='child1'></div>
Paragraph 1
<br>
Paragraph 2
<div class='child2'></div>
<div class='child3'>whatever</div>
i don't wanna this text
<div class='last'>whatever</div>
</div>
如何获取文字“第1段第2段” 没有文字“ 我不想这个文字 ” 从那个代码?
谢谢。
注意: 我无法编辑/更改HTML代码。
答案 0 :(得分:4)
1 - 如何只获取没有标签的内容:
<强> HTML:强>
<div class="parent">
<div class="first">whatever content</div>
<div class="child1"></div>
Paragraph 1
<br>
Paragraph 2
<div class="child2"></div>
<div class="child3">whatever</div>
Last Content
<div class="last">whatever</div>
</div>
<强> JQUERY:强>
var content = $('.parent').clone().children().remove().end().text();
alert(content);
演示: http://jsfiddle.net/vRbCw/3/
2-如何删除div.child3
之前的内容:
<强> JQUERY:强>
var appendSt = $('.child3').after('code:'),
content = $('.parent').clone().children().remove().end().text(),
reg = content.replace(/code:([^xyz]+)/, '');
alert(reg);
演示: http://jsfiddle.net/sBSRH/
获取没有子元素的元素文本:http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/
答案 1 :(得分:3)
你应该真正考虑做一些完全不同的事情。但是,您可以使用.contents()
获取文本节点,并检查nodeType
是否为3
。
var textNodes = $('.parent').contents().filter(function(){
return this.nodeType === 3 && /[a-z]/g.test(this.nodeValue);
});
我只返回其中至少有一个字母的textNodes。
http://jsbin.com/eziqil/1/edit
如果您希望在集合上使用.wrap()
,可以将其打包在一个范围内进行样式化。