无法从带有'aspNetHidden'CSS类

本文关键字:aspNetHidden CSS | 更新日期: 2023-09-27 17:49:24

我正在编译一个web用户控件成HTML,它返回的HTML与视图状态包含在DIVs类为aspNetHidden。但是这些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>

请告诉我出什么事了?如果可能的话,在c#中,那么也请提供我一个服务器端代码。

无法从带有'aspNetHidden'CSS类

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

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

你会发现问题所在。只取第一个aspNetHidden作为$c,其他的忽略。

小提琴

问题是,每当你用$()包装html字符串时,它会创建一个具有父对象的对象。而你的输入c只有3个没有父节点的<div>s,所以它只接受第一个div作为输入并创建一个对象。


最终代码:

试试这个,

var $c = $('<div/>',{html:c});
//or var $c = $('<div'+c+'</div>');
$c.find('.aspNetHidden').remove()

更新小提琴

你到底想做什么?

你得到的只是这个,因为它是$c数组中的第一个元素

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

根据此http://api.jquery.com/html/$c.html()获取匹配元素

集合中第一个元素的HTML内容

如果你想得到这行

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

试试这个

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.get(1));