Javascript 无法从具有';aspNetHidden';CSS类
我正在将一个web用户控件编译成HTML,它返回HTML,视图状态包含在DIVs中,类为Javascript 无法从具有';aspNetHidden';CSS类,javascript,c#,jquery,html,asp.net,Javascript,C#,Jquery,Html,Asp.net,我正在将一个web用户控件编译成HTML,它返回HTML,视图状态包含在DIVs中,类为aspNetHidden。但这些div破坏了我的页面设计,我正试图使用以下JQuery代码删除它们: var c ='<div class="aspNetHidden"><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="fEButj6b8aiQphz0BrJAJplpNUO1v+7wkyuy4bE4UQ9jy524
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());
var c='code from web用户控件';
var$c=$(c);
$c.find('.aspNetHidden').remove();
log($c.html());
但这段代码返回的是:
<input name="__VIEWSTATE" id="__VIEWSTATE" value="fEButj6b8aiQphz0BrJAJplpNUO1v+7wkyuy4bE4UQ9jy524kYG+mAVtVvxdfpWnKqmCQfVCiHrx21/GiUZe9w==" type="hidden">
与此相反:
<div>Code from web user control</div>
来自web用户控件的代码
请告诉我怎么了?如果可能的话,请在C#中提供服务器端代码。您到底想做什么 您得到的正是这个,因为它是
$c
数组中的第一个元素
<input name="__VIEWSTATE" id="__VIEWSTATE" value="fEButj6b8aiQphz0BrJAJplpNUO1v+7wkyuy4bE4UQ9jy524kYG+mAVtVvxdfpWnKqmCQfVCiHrx21/GiUZe9w==" type="hidden">
试试这个
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));
var c='code from web用户控件';
var$c=$(c);
//$c.find('.aspNetHidden').remove();
console.log($c.get(1));
问题在第var$c=$(c)行
,如果您记录$c
var $c = $(c);
console.log($c.html())
你会发现问题所在。它只将第一个aspNetHidden
作为$c
,其他的则被忽略
问题是,无论何时使用$()
包装html字符串,它都会创建一个具有父对象的对象。而您的输入c
只有3个s
,没有父对象,因此它只将第一个div
作为输入并创建一个对象
最终代码:
试试这个
var $c = $('<div/>',{html:c});
//or var $c = $('<div'+c+'</div>');
$c.find('.aspNetHidden').remove()
var$c=$('',{html:c});
//或者var$c=$('@Aishwarya Shiva我已经编辑了答案,看看它,如果它对您有效,您的代码只返回
。请看这里。即使它有效,我如何获得位于不同索引位置的所有标记?因为我的代码是动态生成的,可能存在这种情况。
var $c = $('<div/>',{html:c});
//or var $c = $('<div'+c+'</div>');
$c.find('.aspNetHidden').remove()