![](/img/trans.png)
[英]Remove specific HTML tag with its content from javascript string
[英]Remove “Form” tag with its content from string with javascript
我需要从ajax响应内容中删除表单标签。 我已经尝试过下面的代码,但是它不起作用。 任何帮助,将不胜感激。
new Ajax.Request(
url, {
method: "post",
onSuccess: function (b) {
var a = $("test");
a.update(b.responseText.replace("[<](/)?form[^>]*[>]", ""));
}
});
(在此答案中不使用jQuery,因为您问题中的代码显然是使用PrototypeJS代替的。)
最简单的方法是解析HTML(浏览器很乐意为您完成此操作),删除结果中的form
元素,然后将其序列化回字符串(如果需要;浏览器也乐意为您完成此操作) )。
例如(不使用jQuery):
var div = document.createElement("div");
// This parses it
div.innerHTML = b.responseText;
// Find and remove the first form; tweak the selector to target if necessary
var form = div.querySelector("form");
if (form) {
form.parentNode.removeChild(form);
}
// Convert back to string if needed
var str = div.innerHTML;
使用javascript从字符串中删除“表单”标签及其内容
假设您的意思是从string中删除“ Form”标签及其内容 。
如果您使用的是jquery ,则可以尝试
var $bResponseText = $( b.responseText );
$bResponseText.find( "form" ).remove();
b.responseText = $bResponseText[0].outerHTML;
在使用update
功能之前
或使用jQuery的另一种方法
$("test").append( b.responseText );
$("test").find( "form" ).last().remove();
您可以简单地用<form>
替换表单内容
//detect the form, you can use id or class selector var formContent = $('form'); // replace the form with its content so that form tag is removed formContent.replaceWith(formContent.html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id='content'> <form> <div>Content inside Form</div> </form> </div>
您可以使用这样的东西:
var tempDiv = document.createElement("div");
tempDiv.innerHTML = b.responseText;
var allForms = tempDiv.querySelectorAll("form");
a.update(tempDiv.innerHTML);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.