如何从字符串中删除html DOM元素(使用javascript)?

时间:2014-09-21 01:01:57

标签: javascript html angularjs dom meta-tags

好的,所以我正在构建我的角度应用程序。我将内容的前100个字符插入到facebook共享的“description”元标记中,但是存在问题。它还将DOM html元素添加到描述中。所以facebook描述看起来像这样(sry,它是爱沙尼亚语):

“Mänguvöibmängidakoosalkoholigavõiilma.Mängkäibjärgmiselt:< ol>< li>Kõikidelemängijateleantaksepaber(soovitatavalt< img class =”lightbox_image“src =”img / article_pictures / post_it_note。 jpg“alt =”“>< span class =”lightbox_link“onclick =”open_lightbox(this)“> kleepuv post-it note< / span>)ja ...”

你可以在这里测试一下: http://vivule.ee/2

我尝试在将元素插入元标记之前删除它们,但我只能删除这么多。

以下是我删除br标签的示例:

  var original_description = $scope.game.description;
  original_description = original_description.replace(/<br>/g,"");

但我怎么会删除这样的东西:“&lt; img class =”lightbox_image“src =”img / article_pictures / post_it_note.jpg“alt =”“&gt;”,是否有一种比正则表达式更简单的方法? / p>

1 个答案:

答案 0 :(得分:1)

我对angularJS一无所知!!!但如果您使用JQuery,那么您可以这样做:

从您拥有的String创建一个JQuery元素,例如:

var yourHtmlString = '<p>p contents</p> hallo <br/> <i>i contents</i>
    <img  src="img/article_pictures/post_it_note.jpg" alt="">';

var div = $('<div>'+yourHtmlString+'</div>');

现在,要仅获取没有html标签的文本,只需执行:

div.text();

DEMO: http://jsfiddle.net/Lxyd2joa/