我需要从ajax响应内容中删除表单标记。我试过下面的代码,但它没有用。任何帮助,将不胜感激。
new Ajax.Request(
url, {
method: "post",
onSuccess: function (b) {
var a = $("test");
a.update(b.responseText.replace("[<](/)?form[^>]*[>]", ""));
}
});
答案 0 :(得分:2)
(在此答案中未使用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;
答案 1 :(得分:0)
使用javascript
字符串中的内容删除“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();
答案 2 :(得分:0)
您可以使用<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());
&#13;
<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>
&#13;
答案 3 :(得分:0)
您可以使用以下内容: -
var tempDiv = document.createElement("div");
tempDiv.innerHTML = b.responseText;
var allForms = tempDiv.querySelectorAll("form");
a.update(tempDiv.innerHTML);