JQuery,从 Html 字符串中删除元素并以 HTML 形式放回文本区域

标签 jquery string jquery-selectors textarea

我有一个文本区域,用户可以在其中编辑一些文本,并且它接受 HTML。在系统中,我们可以在文本区域中添加要添加的多媒体文件。但是,当有人取消链接多媒体时,我需要检查文本区域中是否有任何多媒体,将其删除并放回文本区域。

所以: 我有一个像这样的文本区域

<textarea id="edNew-body" class="apply-jHtmlArea" style="width:550px;height:250px;"></textarea>`

当我添加一些多媒体时,它会像这样,例如:

<audio src="whatever url" controls="controls" class="multimedia_666007" style="display: block; margin: 5px auto 10px; width: 320px; height: 35px; background-color: rgb(227, 227, 227);">-AUDIO-No support for HTML5</audio>`

因此,当我删除多媒体时,我需要获取文本区域内的所有 html 并使用 class=multimedia_NNNNN 删除所有元素,其中 NNNN 是一个数字。

我尝试了以下操作:Made a JSFiddle with below code

 dataId = '666007'; //not fixed, will come from somewhere from system
 var $currentHtml = $($("#edNew-body.apply-jHtmlArea").val());
 $currentHtml.find('.multimedia_'+dataId).remove(); //get all but ignore elements with this class
 $("#edNew-body.apply-jHtmlArea").val($currentHtml.html()); //put Html back without elements

我已经尝试了下面这些问题的答案,但它们只适用于这些问题。当我尝试适应时,我总是以 [object Object] 结尾,或者只是第一个文本“something”,没有任何 html。

JQuery, remove element from string

String to jQuery object, how to remove elements

Remove element from html string in JQuery

阅读答案后我了解到我需要使用 find 因为它是用户输入,它可以嵌套也可以不嵌套在某些内容中(所以我不能使用 remove('.classhere'))

最佳答案

如果将 HTML 放入容器中,则 .find() 将能够搜索所有元素(因为它从不查看顶层元素)。

此外,由于 .html() 仅提供嵌套的 HTML 内容,因此将其放入容器中将允许 .html() 返回整个修改后的 HTML内容。

$('#rmv').click(function(e){
    e.preventDefault();
    var dataId = '666007'; 

      // Put the markup in a new container
    var $currentHtml = $('<div>').append($("#edNew-body.apply-jHtmlArea").val());

      // .find() will now be able to search through all the markup you added
    $currentHtml.find('.multimedia_'+dataId).remove();

      // .html() will now give you back all the markup (though modified)
    $("#edNew-body.apply-jHtmlArea").val($currentHtml.html()); 
});

http://jsfiddle.net/jR5bc/

关于JQuery,从 Html 字符串中删除元素并以 HTML 形式放回文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8803922/

相关文章:

javascript - 使用 jquery 将 href 查询字符串值传递给数组

javascript - 如何将 JSON 数据存储为 JavaScript 表格式?

mysql - 如何在 MySQL 中将字符串转换为日期?

jQuery :odd selector

jquery - 选择名称为数组字段的输入字段

javascript - 这些 setTimeout 格式中哪种更好?

javascript - 选择另一个单选按钮时如何取消选择单选按钮?

C - 写入文件的字符出现次数

java - 比较 Java StringBuffer 中的字符

javascript - Jquery 选择一个对象但隐藏同一类型的其他对象