如果我有这个HTML
<div class="whole">This is a <div class="min">Test</div></div>
当我单击“最小” div时,我想更改“整个” div的html:
我已经在下面尝试过了,但是似乎没有用。
$(document).ready(function() {
$('div.min').live('click', function() {
$(this).prev('.whole').html("<img BORDER=0 src='../../images/copy1.png' />");
});
});
有人对这里出什么问题有任何想法吗?
最佳答案
您需要parent
,而不是prev
。您的div.min
在内部,而不是在div.whole
旁边。所以:
$(document).ready(function() {
$('div.min').live('click', function() {
$(this).parent('.whole').html("<img BORDER=0 src='../../images/copy1.png' />");
});
});
2017年更新:
live
已被弃用多年,最终被删除。在上面使用它是因为它在OP的原始代码中,而不是问题,但是为了完整起见,当前的实现方法是使用on
的委托签名:$(document).on('click', 'div.min', function() {
$(this).parent('.whole').html("<img BORDER=0 src='../../images/copy1.png' />");
});
请注意,我们甚至不需要
ready
,因为这是对document
进行事件委托,因此它不必等待。 (上述live
版本也是如此。)