我有一个在ASP.NET webforms中输出HTML的页面。
我通过以下方式向此页面发出请求:
$(document).ready(function () {
$.get("Preview.aspx?ID=1", function (data) {
alert("Data Loaded: " + data);
});
});
问题是preview.aspx页面返回带有表单元素的HTML。我想用什么都不替换这些表单元素。
如何从上面的数据对象中删除所有表单元素?
编辑:为了清楚起见,我需要保留所有HTML,只替换表单元素。
编辑2:对不起,我应该更清楚。这是一个HTML简报。基本上页面是纯HTML,但是网页形式(yuck)有所有形式的mumbo jumbo。我想获取没有表单元素的页面内容。到目前为止,下面的想法是行不通的。 .load有效,但是当我添加:not('form')时,HTML格式不正确。 get var elem = $(data).find('form')。html();当我执行警报(数据)时,即使表单肯定存在,也会返回null。
答案 0 :(得分:2)
使用jQuery的.load
方法可能会更好。这样,您可以使用任何jQuery选择器从外部页面中选择一个片段。
如果您将Preview.aspx中的所有相关信息包装在<div id="whatever">
标记中,则可以使用
$('<div/>').load('Preview.aspx?ID=1 #whatever', function() {
var preview = $(this).html();
});
- 它具有忽略所有html / head / body /等的额外好处。该文件中的标签。
您也可以通过这种方式使用它,这将获得不是form
或input
标记的所有内容,但可能会让表单中的其他内容通过。仔细使用并根据需要进行修改:
$('<div/>').load('Preview.aspx?ID=1 :not("form"):not("input")', function() {
var preview = $(this).html();
});