[英]Unable to remove HTML tags from a string that has a 'aspNetHidden' CSS class
我正在將一個Web用戶控件編譯為HTML,它返回的HTML的視圖狀態包含在類為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>
請告訴我怎么了? 如果可能的話在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()
獲取匹配元素集中第一個元素的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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.