无法从带有'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#中,那么也请提供我一个服务器端代码。
问题在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()
获取匹配元素
如果你想得到这行
<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));