2010-10-04 101 views
0

這裏是場景...我有一個複選框旁邊的每個字段,我用jQuery替換頁面加載「刪除」文本,使我可以刪除字段通過jquery,這是工作正常。是這樣的...如何使用jquery替換添加到頁面的新元素

$(".profile-status-box").each(function(){ $(this).replaceWith('<span class="delete">' + 'Delete' + '</span>') }); 

這個問題來的卻是,頁面加載後,我也給用戶動態地添加新字段的選項。新添加的字段雖然有複選框,但沒有刪除鏈接,因爲它們沒有被jquery替換,因爲它們是在初始頁面加載後添加的。

不可能在不刷新頁面的情況下替換添加到頁面的新元素的內容嗎?如果不是,我總是可以有兩個不同標記的模板,一個是js,一個是非js,但我試圖避免這種情況。

在此先感謝。

回答

3

可以使用.livequery() plugin,就像這樣:

$(".profile-status-box").livequery(function(){ 
    $(this).replaceWith('<span class="delete">Delete</span>') 
}); 

匿名函數對發現的每一個元素運行,因爲它們可以增加每個元素選擇匹配。

+0

尼斯。這看起來像我正在尋找的。我會給它一個鏡頭。謝謝! – James 2010-10-04 23:52:06

0

看看這個kool演示。它可以移除和添加魅力等元素。

http://www.dustindiaz.com/basement/addRemoveChild.html

方法如下:

首先,在(X)HTML是真正的簡單。 的xHTML片段

<input type="hidden" value="0" id="theValue" /> 
<p><a href="javascript:;" onclick="addElement();">Add Some Elements</a></p> 
<div id="myDiv"> </div> 

隱藏輸入元素只是給你一個機會,以動態地撥打電話,你可以下手。例如,可以使用PHP或ASP進行設置。 onclick事件處理程序用於調用該函數。最後,div元素已經設置並準備好接收一些附加到自己身上的孩子(天哪聽起來更奇怪)。

Mkay,迄今爲止很容易。現在JS功能。

的addElement JavaScript函數

function addElement() { 
    var ni = document.getElementById('myDiv'); 
    var numi = document.getElementById('theValue'); 
    var num = (document.getElementById('theValue').value -1)+ 2; 
    numi.value = num; 
    var newdiv = document.createElement('div'); 
    var divIdName = 'my'+num+'Div'; 
    newdiv.setAttribute('id',divIdName); 
    newdiv.innerHTML = 'Element Number '+num+' has been added! <a href=\'#\' onclick=\'removeElement('+divIdName+')\'>Remove the div "'+divIdName+'"</a>'; 
    ni.appendChild(newdiv); 
} 

如果你想,

removeElement JavaScript函數

功能removeElement(divNum){VAR = d的document.getElementById(」 myDiv'); var olddiv = document.getElementById(divNum); d.removeChild(olddiv); }

和那是。 bobs你的叔叔。

這是從這篇文章/教程採取:http://www.dustindiaz.com/add-and-remove-html-elements-dynamically-with-javascript/

我剛剛得知這個自己。謝謝你的問題

希望有所幫助。

PK

+0

OP已經在使用一個庫,在這種情況下,jQuery ...所以這看起來很冗長:) – 2010-10-04 23:42:00

相關問題