2010-10-04 78 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

相关问题