簡體   English   中英

無法從具有“ aspNetHidden” CSS類的字符串中刪除HTML標簽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM