解
removeChild: function(select) {
$(select).nextAll().remove();
}
我正在尝试动态创建一个<select>
框的链,这是一个示例函数:
JQUERY:
getLanguages: function() {
$.ajax({
url: './db_scripts/get_languages.php',
success: function( data ) {
$('<select>', {
id: 'languages',
html: createOptions( data,'Language' )
}).appendTo('#sidebar');
}
});
},
selects.getLanguages();
$('#languages').live('change', function() {
selects.removeChild($(this));
selects.getCategories();
});
我的 HTML 只是:
<div id="sidebar"></div>
添加选择工作完美。我想要做的是有另一个功能,删除已更改的选择下面的任何子项。这样,它会删除所有子项<select>
,用户可以在<select>
树中的任何位置更改选择过程。以下是其工作示例(尝试更改顶级选项)http://philipimperato.com/mobileOrder
这是我的removeChild()
功能:
removeChild: function(select) {
alert('This is what is being passed in: ' + $(select).attr('id'));
alert('This is the last child of the div, #sidebar: ' + $(select).parent('div').children('select:last-child').attr('id'));
while($(select).parent('div').children('select:last-child') != $(select)) {
alert('Same as first: ' + $(select).attr('id') + 'Same as 2nd: ' +$(select).parent('div').children('select:last-child').attr('id'));
$(select).parent('div').remove($(select).parent('div').children('select:last-child'));
}
}
我已经为您提供了方便的信息:这是网站:InsanelyWeb
该函数无效并给我一个jQuery错误:“c.replace不是函数” - 我不知道如何解决这个问题。有没有人对我有任何建议?谢谢! 的修改
这是在普通javascript中工作的函数(我只想知道)
while(el.parentNode.lastChild != el) {
el.parentNode.removeChild(el.parentNode.lastChild);
}
我正在尝试将其转换为jquery以执行更多内容,例如hide()
等
while($(el).parent('div').children('select:last-child') != el) {
$($(el).parent('div').children('select:last-child')).remove();
}
答案 0 :(得分:3)
我不太确定你在removeChild
尝试做什么,但是看看你的代码,我认为你误解了.remove()
在jQuery中的工作方式。它删除了所选的元素(如选择器所示)。因此,如果您要删除select
中的removeChild
元素,则可以执行以下操作:
$(select).remove();
另一种从DOM中删除元素的方法是.empty()
,它会删除所选元素的所有子元素。因此,如果您要删除#sidebar
的所有子项,您可以执行以下操作:
$('#sidebar').empty();
修改强>:
好的,这是我的第二次尝试:)
removeChild: function(select) {
$(select).nextAll().remove();
}
看看.nextAll()
。这可能就是你追求的目标。