我创建了一个jsfiddle,因为我认为这是展示问题的最佳方式。基本上,脚本可以更改按钮,但在按钮更改后,标题不会更改。我假设是因为原来的按钮被替换了:
是否可以以某种方式捕获原始按钮,以便即使在删除按钮后也可以使用它来删除替换标题?
答案 0 :(得分:3)
您可以cache outer_div
元素(example);
$('#some_button').live('click', function() {
some_function( $(this) );
});
function some_function( that ) {
var $outer_div = that.closest('.outer_div');
$outer_div
.find('.main')
.empty()
.append( '<input type="button" id="some_other_button" value="click me 2" />' )
.end()
.find('.header')
.empty()
.append( "new header data" );
}
另请注意.end()
功能。 ;)
答案 1 :(得分:1)
尝试更改您的功能,如下所示
function some_function( that ) {
var $outerDiv = that.closest('.outer_div');
$outerDiv.find('.main').empty().append( '<input type="button" id="some_other_button" value="click me 2" />' );
$outerDiv.find('.header').empty().append( "new header data" );
}
答案 2 :(得分:0)
发生这种情况是因为当您从DOM中删除that
元素时,它不再存在。但是,您可以“缓存”父div
元素。
function some_function( that ) {
var div = that.closest('.outer_div');
div.find('.main').empty().append( '<input type="button" id="some_other_button" value="click me 2" />' );
div.find('.header').empty().append( "new header data" );
}