从字符串中删除图像标记

时间:2012-12-05 21:23:26

标签: javascript jquery

我正在尝试从正在返回字符串的数据库调用中删除<img>标记。

字符串示例如下所示

dummy textdummy text dummy text dummy text dummy text
<img src='text.jpg'/>
dummy textdummy text 
<img src='text1.jpg'/>dummy textdummy text dummy textdummy text 
dummy textdummy text 
<img src='text3.jpg'/>

image tagimage src的位置可能会有所不同,但主要目的是删除<img>代码。

replace在我的情况下不起作用

有没有办法做到这一点?非常感谢!

4 个答案:

答案 0 :(得分:1)

如果我理解正确,您只想删除html标签并将文本保留在客户端?为什么不把它变成一个jQuery对象并使用.text()方法

$(yourstring).text();​

http://jsfiddle.net/DDjFz/

除非你想保留其他标签,否则我会发布另一个答案

编辑:

如果您只想删除图像元素,可以使用过滤功能

var newString = $(x).filter(function() {
     return this.tagName != 'IMG';
}).text();

http://jsfiddle.net/47bcJ/

技术上$(x).filter(':not(img)').text()应该有效,但不确定为什么它不是

答案 1 :(得分:0)

如果您使用PHP从数据库返回数据,您是否考虑过strip_tags?它删除了HTML标签(以及PHP!)

或者您正在寻找JavaScript解决方案吗?试试this。还有很多其他PHP函数移植到JavaScript上面了!

答案 2 :(得分:0)

以下是一种删除特定img元素的方法:http://jsfiddle.net/DDjFz/2/

<img src='http://placekitten.com/g/200/300'/>
<ul>
  <li>dummy textdummy text dummy text dummy text dummy text <img src='http://placehold.it/350x150'/></li>
  <li>dummy textdummy text <img src='http://placekitten.com/200/300'/></li>
  <li>dummy textdummy text dummy textdummy text dummy textdummy text <img src='http://lorempixel.com/400/200/'/></li>
</ul>

使用此脚本:

$('li > img').remove();

如果你想删除所有这些,你可以使用:

$('img').remove();

答案 3 :(得分:0)

你可以尝试这样的事情。

$(document).ready(function(){
    $("img").each(function(){
        var i = $(this).attr("src");
        $(".display").append('<p>' + i + '</p>'); 
    });
});

使用附加功能,您可以在html页面中看到结果。