2013-03-08 54 views
0

如何獲得Descriptions名字,如果我們點擊<img src="../Images/Checkmark.ico"如果我們點擊圖像,如何找到span html?

<li id="liRightDescriptions" style="display: list-item;"> 
     <span><span>Descriptions</span> 
     <img src="../Images/Checkmark.ico" class="checkImage"></span> 
    </li> 

我厭倦了這一點: -

$('.checkImage').live('click', function (event) { 
     debugger; 
     event.preventDefault(); 
     var name = $(this).prev().html(); 
+0

DOM是一棵樹。樹中的每個節點都知道它在哪裏,它的父節點是什麼,以及它有哪些子節點/兄弟節點。所以:http://api.jquery.com/prev/ – 2013-03-08 16:31:46

+0

你打開兩個''後接另一個 – simplyray 2013-03-08 16:31:47

+0

$(this).siblings().text() – Matheus 2013-03-08 16:32:51

回答

1

嘗試:

$('.checkImage').click(function() { 
    var name = $(this).prev().html(); 
    alert(name) 
}) 
0

不使用live折舊後

$('body').delegate('.checkImage','click',function(){ 
alert($(this).prev().html()); 

}); 
+1

從1.7開始,委託被['.on()'](http://api.jquery.com/delegate/) – jxpx777 2013-03-08 16:34:36

0

你應該使用.siblings()選擇(http://api.jquery.com/siblings/

爲例:

$('.checkImage').live('click', function (event) { 
    var name = $('.checkImage.').siblings('span').html(); 
} 
0

live()功能已被棄用,並已替換爲on(),用途:

$('body').on('click', '.checkImage', function(){ 
    var text = $(this).prev('span').text(); 
}); 
0

試這

$('.checkImage').click(function() { 
    var name = $(this).prev().html(); 
}); 
0

這很可能會奏效,除非您的圖片中沒有關閉/,或許更多。順便說一句...使用.click()比使用.on()...慢,.live()折舊。

我得到它的工作,所以這裏有一個固定的搗鼓你:

http://jsfiddle.net/digitalextremist/QT66f/

基本相同,但我去掉你可能實際上並不需要的東西。如果你這樣做,重新添加它們。

$('.checkImage').on('click', function (event) { 
     var name = $(this).prev().html(); 
     alert(name) 
}) 

和HTML:

<li id="liRightDescriptions" style="display: list-item;"> 
    <span> 
     <span>Descriptions</span> 
     <img src="../Images/Checkmark.ico" class="checkImage" /> 
    </span> 
</li>