如果我有这个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版本也是如此。)

10-05 20:58
查看更多