javascript - 无法从具有 'aspNetHidden' CSS 类的字符串中删除 HTML 标记

标签 javascript c# jquery html asp.net

我正在将 Web 用户控件编译为 HTML,它返回 HTML,其中 View 状态包含在类为 aspNetHidden 的 DIV 中。但这些 DIV 破坏了我的页面设计,我尝试使用以下 JQuery 代码删除它们:

var c ='<div class="aspNetHidden"><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="fEButj6b8aiQphz0BrJAJplpNUO1v+7wkyuy4bE4UQ9jy524kYG+mAVtVvxdfpWnKqmCQfVCiHrx21/GiUZe9w==" /></div><div>Code from web user control</div><div class="aspNetHidden"><input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="C21772F6" /></div>';
var $c = $(c);
$c.find('.aspNetHidden').remove();
console.log($c.html());

但是这段代码返回的是:

<input name="__VIEWSTATE" id="__VIEWSTATE" value="fEButj6b8aiQphz0BrJAJplpNUO1v+7wkyuy4bE4UQ9jy524kYG+mAVtVvxdfpWnKqmCQfVCiHrx21/GiUZe9w==" type="hidden">

而不是这个:

<div>Code from web user control</div>

请告诉我出了什么问题?如果可能的话,请也提供一个服务器端代码。

最佳答案

问题在var $c = $(c);行中,如果您记录 $c 的初始值

var $c = $(c);
console.log($c.html())

你会看到这个问题。只需要第一个 aspNetHidden$c其他的则被忽略。

Fiddle

问题是,每当你用 $() 包装 html 字符串时,它与父对象一起创建一个对象。以及您的输入c只有 3 <div>s没有 parent ,所以只需要第一个 div作为输入并创建一个对象。

<小时/>

最终代码:

试试这个,

var $c = $('<div/>',{html:c});

//or var $c = $('<div'+c+'</div>');

$c.find('.aspNetHidden').remove()

<强> Updated Fiddle

关于javascript - 无法从具有 'aspNetHidden' CSS 类的字符串中删除 HTML 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288816/

相关文章:

javascript - 将日期转换为毫秒至今

javascript - 如何使用 localStorage 将商品保存到购物车

javascript - SAPUI5 检查 View 中的模型属性

c# - "The post' s 链接必须指向应用程序 's connect or canvas url"?

c# - 无法在 Sitecore 8.2 中的 Sitecore 内容和体验编辑器中编辑数据源

c# - 使用自定义脚本函数评估数学表达式

javascript - Div、显示、隐藏切换。改变链接颜色

javascript - 同步与立即异步执行性能基准

javascript - Node.JS AJAX 空体

javascript - 将 window.location 发送到变量,该变量是字符串形式的 URL