2011-07-04 48 views
2

刪除我有這樣的代碼和它不工作元素不是從HTML的jQuery

var data = '<div class="myform" id="stylized"><form enctype="multipart/form-data" method="post" action="" id="form1"><h1>Account form</h1></form></div>'; 

$(data).find('h1').remove(); 
alert(data); 

這裏H1是仍然存在的結果

+0

是jQuery $ .ready中的代碼嗎? – Andy

+0

找到什麼?你能找到h1標籤嗎? –

回答

2

你把一個字符串,並從中構建DOM結構(這就是$(data)一樣)。然後,您正在修改該DOM結構(使用remove)調用。該更改會影響DOM結構。 它不影響原始字符串。

如果您想再次取出該字符串,則必須檢索該字符串。

$data = $(data); 
$data.find('h1').remove(); 
data = $data.html(); 
+0

我們需要'.end )鏈,以便再次獲得父節點。否則,我們會從刪除的節點中輸出html。 – jAndy

+0

@lone我只是從 user1

+0

@ user824981然後您需要外部HTML概念。這是可能的,但很簡單的原因是很不必要的。你將如何處理你獲得的價值? – lonesomeday

3

嗯,你只是更新jQuery wrapped set,而不是data variable 。您需要指定新的jQuery形成一套和訪問它的.html()方法得到的結果:

var data = '<div class="myform" id="stylized"><form enctype="multipart/form-data" method="post" action="" id="form1"><h1>Account form</h1></form></div>'; 

var $myData = $(data).find('h1').remove().end(); 
alert($myData.html()); 
+0

你的代碼不工作,請點擊這裏http://jsfiddle.net/QNnLe/3/ – user1

+0

@ user824981:查看更新的版本。忘了關於'.end()' – jAndy

+0

我現在只能從 user1