看着“In jQuery, want to remove all HTML inside of a div”,我正朝着正在寻找的方向前进:
我有一个类似于以下内容的textarea:
<textarea id="inputPane" cols="80" rows="40" class="pane" style="height:300px;">
<table><tr><td>
<b>Since your service bureau</b>, xxx is not certified
by our company for xyz, your company will need to complete
more testing as part of the process.
</td></tr></table>
</textarea>
使用上面列出的网址中的代码,我可以删除所有空格,但无法移除实际的HTML代码:<b></b>
,<table>
等。
jQuery.fn.stripTags = function()
{ return this.replaceWith( this.html().replace(/<\/?[^>]+>/gi, '') ); };
这部分是什么意思?
/<\/?[^>]+>/gi
我认为它是:
<
>
虽然这不是我在代码中所做的。它似乎从我戴上它的DIV中剥离了所有的空白。
gi
部分是什么?
并且,当显示的HTML来自数据库时,您是否有一个很好的解决方案从wmd-editor textarea中删除HTML标记?
答案 0 :(得分:2)
我需要抓取一些html的div并将它们复制到textarea中。我把它全部变成了这样的一行:
$('#yourTextarea').val($('#yourTextarea').val()+$('.yourHTMLdivs').text().replace(/ +(?= )/g,''));
.yourHTMLdivs
是被复制和删除的部分。 .text()
是删除html的内容。最后的.replace()
会占用额外的空格。这样做,你的信息被剥离并设置为进入textarea之前。
(我在阅读StackOverflow上的三四个类似问题后解决了这个问题!这里有很棒的东西。)
答案 1 :(得分:0)
我使用以下脚本从字符串中删除html标记 -
function removeHTMLTags(htmlString)
{
if(htmlString)
{
var mydiv = document.createElement("div");
mydiv.innerHTML = htmlString;
if (document.all) // IE Stuff
{
return mydiv.innerText;
}
else // Mozilla does not work with innerText
{
return mydiv.textContent;
}
}
}
不完全确定,但我认为/gi
部分表示全局替换,如JavaScript中的string.replace
。
答案 2 :(得分:-1)
使用jquery更简单:
function removeHTMLTags(htmlString)
{
if(htmlString)
{
var mydiv = $("<div></div>");
mydiv.html(htmlString);
retun mydiv.html();
}
}