2013-03-11 57 views
1

我想在鏈接懸停上創建一個圖像previev,它位於<a></a>標籤之間。這裏是我的代碼:jQuery在懸停時顯示圖像,檢測到元素ID的某些部分

<li id="pic39"> 
    <span class="pr2"></span> 
    <a id="pic39" href="http://shrani.slo-devs.com/index.php?p=6vxK53pk" target="_blank">Sandra</a> 
    <span class="edit" onclick="location.href='index.php?e=39'"></span> 
    <span class="delete" onclick="deletePIC(39)"></span> 
    <i class="infoSlike">(0 ogledov | 11.03.2013/21:59:31)</i> 
    <div id="imgPrv"> 
     <span id="imgPrv39"> 
      <img src="http://www.shrani.slo-devs.com/upl/CENSURE.jpeg" /> 
     </span> 
    </div> 
</li> 

我想jQuery的檢測標籤ID(所以,數)和顯示範圍,其中包括數(跨度ID imgPrv39)的剩餘部分。

+0

這不是一個答案,而是一個觀察:確保不要有多個元素相同的id,所以id = pic39同時用於li和a。每個頁面的ID號必須是唯一的 – 2013-03-11 21:22:17

回答

1
$('li a').hover(function(){ 
    // You can replace the `pic` with an empty string 
    var id = this.id.replace('pic', ''); 
    $('#imgPrv' + id).toggle(); 
}) 

請注意,ID必須是唯一的,您有幾個具有相同ID的元素,您的標記無效,您應該使用類代替。

您還可以使用siblings方法:

$('li a').hover(function(){ 
    $(this).siblings('div').find('span').toggle(); 
}) 
+0

非常感謝,它真的幫助我:) – Zan 2013-03-11 22:00:52

0

你不需要做這種方式。您可以使用相對選擇器並消除所有此ID業務。

這假定您的LI中只有一個A和一個SPAN。如果你想更具體一些,你可以使用類名。

$("li a").hover(
    function() { 
    $(this).find('span').show(); 
    }, 
    function() { 
    $(this).find('span').hide(); 
    } 
);