2013-06-18 100 views
0

如何使用html标签获取文本,但只能从主DIV获取文本?不形成其他DIVS。通过jquery获取来自主DIV的html标签的文本?

这里是例子,但有一些问题,becouse文字无需HTML标记< BR />

jsFiddle DEMO

HTML

<div id='parent'> 
    this text is <br />for parent 

    <div id='child-parent'> 
    this text if for child-parent 
     <div id='child'> 
     and this text is for child. 
     </div> 
    </div> 
</div> 

jQuery的

alert($('#parent').clone().children().remove().end().html()); 
+1

'$的.text()'返回没有标签的内容的字符串。 – Broxzier

+1

@Broxzier - 他想要那些标签。 – tymeJV

+1

你能解释一下你期望从这个例子中返回吗? – Broxzier

回答

1

我更新了小提琴和使用不同的战术,以除去最后一个元素

http://jsfiddle.net/F6AeM/1/

var parent = $('#parent').clone(); 
$(parent).find('#child-parent').remove(); 
alert($(parent).html()); 

不知道为什么这个工程,但你没有,但在这里你去。

+0

谢谢你,它工作正常:))但是有解决方案,如果这些ID将创建dinamicaly,并且如果将有更多的DIV删除?这就是为什么我使用“**。clone()。children()。remove()。end()。html()**” – Patrik

+1

如果它始终是div,则可以将选择器更改为“div”。就像在这个小提琴中一样。 http://jsfiddle.net/F6AeM/4/这将删除每个div不只是最后一个。 – Smeegs

1

假设child-parentchild将始终有一个id

var clone = $('#parent').clone(); 
clone.children().filter(function() { 
    return $(this).is('[id]'); 
}).remove(); 

console.log(clone.html()); 

演示--->http://jsfiddle.net/F6AeM/5/

+0

这实际上并不奏效,它不返回BR标记,它只是输出一个换行符,它是中间节点的nodeValue。 – adeneo

+0

谢谢,它工作正常。有趣和简单的解决方案。如果我想使用其他标签进行文本格式化 - http://jsfiddle.net/ynternet/F6AeM/6/? – Patrik

+1

@Patrik参见这个演示' - >'http://jsfiddle.net/F6AeM/7/ –