2014-09-28 74 views
-2

我明白,.html()可以獲取或設置一個對象的HTML取決於參數是否傳遞給它。修改例如.html方法的jQuery

但是有的時候我希望把它變成父對象之前修改的內容。如何修改.html()方法來接受第二個參數?

我感興趣的特定應用是將數據從一個ajax後回來。由於對我們有AP現有的條件下,我會回來的HTML是< DIV ID = 「mydiv」 > ... </DIV >。這是它將進入的div,所以我可能需要設置一個參數來剝離div本身。或者,我可能想要設置一個參數來替換div的一個子部分。

再次,由於在服務器端的設計約束,可能不總是能夠修改輸出來自服務器。

+2

有與現有重載一些可能的選擇,但我不確定你正在努力做什麼。你能舉一個例子說明你想如何修改內容,以及爲什麼你不能在'html'方法中使用它之前做到這一點? – Guffa 2014-09-28 20:21:02

+0

jQuery的[html()](http://api.jquery.com/html/)方法中沒有第二個參數。也許,你在談論html(function(one,two){})? – 2014-09-28 20:25:34

+0

如果您不確定如何去做,那麼您是如何決定重寫'html()'方法是您的情況的最佳解決方案? – charlietfl 2014-09-28 20:25:40

回答

0

我不知道到底是什麼你正在嘗試做的,但是這可能會幫助你:

http://jsfiddle.net/xdyv9uf3/

$.ajax({ 
    url: "http://fiddle.jshell.net/pu864k4q/show/", 
    dataType: "html", 
    success: function (data) { 
     $('#content').html(mod(data)); 
    }, 
    error: function (xhr, status) { 
     alert("There was an error"); 
    }, 
    complete: function (xhr, status) { 
     $('#content').fadeIn(); 
    } 
}); 

// Do your modifications here 
function mod(data){ 
    var result = $('<div />').append(data).find('#mydiv').html(); 
    var mod = result + ". This is the added content"; 
    return mod; 
} 
+0

謝謝,我沒有想到這一點。在我想要定製鏈接方法的地方(或者寫我自己的方法)是在某些情況下,或許我可能根據環境因素選擇不寫或追加內容。 PS還要感謝對數據顯示fadeIn()的使用! – 2014-09-29 12:43:47

+0

很高興我能幫到你。順便說一句你可以接受答案:) – 2014-09-29 13:18:11