2010-05-13 111 views
1

去外格的引用,如果我有這個網站你如何使用jQuery

<div class="whole">This is a <div class="min">Test</div></div> 

我想改變「整體」的div當我點擊「MIN」 div的HTML:

我已經嘗試過下面這個,但它似乎沒有工作。

$(document).ready(function() { 
    $('div.min').live('click', function() { 
     $(this).prev('.whole').html("<img BORDER=0 src='../../images/copy1.png' />"); 
    }); 
}); 

有沒有人有什麼想法這裏怎麼了?

回答

6

你想要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版本以上也是如此。)

3

.prev()將選擇前述同級,即,在同一水平當前元素之前的元素。
您在尋找.parent()

E.g.

<div id="parent"> 
    <div id="first"></div> 
    <div id="second"></div> 
</div> 
  • $('#second').prev()將選擇#first
  • $('#second').parent()將選擇#parent
  • $('#first').next()將選擇#second
-1

這樣做將是另一種方式的跟隨

$('div.min').click(function(event){ 
    if ($(event.target).is('div.min')){ 
     $('div.whole').html("<img BORDER=0 src='../../images/copy1.png' />"); 
     } 
});​