2017-01-16 31 views
3

考虑这个例如:如何获取标签中的所有html,因为它使用jQuery?

<div> 
    A& 
    <br> 
    B 
</div> 

如果我使用$('div').html(),它返回A&amp;<br>B。它将A&转换为我不想要的A&amp;

如果使用使用$('div').text(),则返回A&B。它忽略了我不想要的<br>

我正在寻找一种方法来获取div内的所有html,而无需解析它,也不会跳过像<br>这样的标签。

这是我想要的结果:A&<br>B。我如何实现这一目标?

+3

'&'有什么问题?这将是获得HTML的正确答案 – adeneo

+0

这是正确的,你应该坚持'&' –

+0

我需要获取内容。它将用作C++程序的输入等等。所以我不能将它从&更改为&,因为如果输入从&更改为& –

回答

4

function decodeEntities(encodedString) { 
 
    var textArea = document.createElement('textarea'); 
 
    textArea.innerHTML = encodedString; 
 
    return textArea.value; 
 
} 
 
console.log(decodeEntities($('div').first().html()))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    A& 
 
    <br> 
 
    B 
 
</div>

编辑

参见node.innerText https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText

+0

谢谢。香草中的innerText像你之前建议的javascript一样工作得很好。我会使用它。 –

+0

谢谢,我会加回来作为参考 – tommybananas

2

这是一个真正的 “黑客”,但它确实工作。

$("<textarea>").html($("div").html()).val() 
相关问题