2011-05-16 85 views
1

我試圖讓Ajax移除同一個Ajax頁面中的元素。我做出通過Ajax的文件用下面的代碼的調用,但它不會刪除元素:Ajax中的jQuery remove()

<input type="text" value="test" name="someel" class="someelement" /> 
<script type="text/javascript"> 
    $('.someelement').remove(); 
</script> 

我使用的數據類型=「HTML」等jQuery的東西的作品,但它只能當我使用諸如live函數之類的東西,我不相信你可以用它來移除元素,但我可能是錯的。

謝謝。

編輯:

AJAX調用:

$.ajax({   
    url: someurl, 
    type: 'post', 
    data: postvars, 
    cache: false, 
    dataType: "html", 
    success: function (html) { 
     $('#somediv').html(html); 
    } 
}); 

編輯2:

例子:移除的網址

+0

「Ajax頁面」是什麼意思?本頁面的文檔是否通過Javascript加載? – Sampson 2011-05-16 16:08:59

+0

是的,使用jquery ajax函數。 – fanfavorite 2011-05-16 16:10:46

+0

如果你總是不需要顯示元素,也許CSS是一個更簡單的解決方案? '.someelement {display:none; }'(當然假設你不能避免將元素包含在第一位) – 2011-05-16 23:50:36

回答

0

.html()函數去掉javascript,所以它不輸出,因此即使將dataType設置爲html也不能執行。來自成功函數的html變量返回完整的javascript,並且可以被剝離以獲得期望的結果。

2

被載入前無法刪除的元素,所以等到頁面已準備就緒,可以使用jquery文檔準備功能。

<input type="text" value="test" name="someel" class="someelement" /> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('.someelement').remove(); 
}); 
</script> 
+0

我以爲文檔就緒不會在Ajax加載的頁面上調用?無論如何,我已經嘗試過這一點,並且不起作用。 – fanfavorite 2011-05-16 16:15:49

+0

@fanfavorite哦對不起,我不能確定你的意思是由AJAX加載頁面:D – MarkRobbo 2011-05-16 17:06:24

0

也許.detach()或.hide()是解決方案嗎?

+0

我試過隱藏,但那並沒有工作,分離與刪除幾乎一樣,但我會嘗試它。 – fanfavorite 2011-05-16 16:17:43

0

在成功功能中做任何你需要做的事情。有多種方法可以在jQuery中進行ajax調用,但是像這樣:

DELETED。沒有工作......看起來remove()僅影響DOM元素。

+0

我試圖避免使用成功的方法,因爲我不想觸摸ajax函數,因爲它在整個站點中使用,並且這只是需要它的1頁。無論如何在ajax加載的頁面內執行此操作嗎? – fanfavorite 2011-05-16 16:21:34

+0

http://api.jquery.com/jQuery.ajax表示,'dataype'html在包含在DOM中時應該評估