2012-05-24 54 views
1

我需要使用標籤類訪問DIV類。該邏輯是將鼠標放在<label class="name">之上<div class="hidden">被調用。請注意:<li><div> ID是unqiue所有的時間如何獲得使用標籤類的div類jQuery中

HTML

 <li id="132" class="main" ><label class="name">Ajay</label> 
    <div class="hidden" id="132" > 
     <p>Some Msg!!<p> 
    </div> 
    </li> 

    <li id="192" class="main"> <label class="name">Raj</label>  
    <div class="hidden" id="192" > 
     <p>Some Msg!!<p> 
    </div> 
    </li> 

    <li id="231" class="main" ><label class="name">David</label>  
    <div class="hidden" id="231" > 
     <p>Some Msg!!<p> 
    </div> 
    </li> 

    So on... 

jQuery的

$('.name').hovercard({detailsHTML:$('.hidden').html()}) 
// on placing mouse on label <div class="hidden"> is called 

請幫我

+0

你的標記是無效的(你的'標籤'標記*在''li'開始標記裏面),並且你的描述與你的代碼說你試圖做的不匹配。您能否修正標記,並確保您確實正確地使用了「父母」和「孩子」這兩個詞? (請注意,'標籤類=「名稱」'和'DIV CLASS =「隱藏」'是,假設我相信標記*應*是* *的兄弟姐妹,無論是家長還是孩子。) –

+0

你'李id'和'div id'是相同的。這是故意的嗎?如果是這樣,這是一種不好的做法,因爲每個元素的ID應該是唯一的。 –

+0

在您的循環中追加字符串以獲取li或div的ID ..bcz,它們都是唯一的 – coolguy

回答

4

您的標記是無效的,你的說明與您的代碼所說的內容不符你正在努力。我猜在這裏,在每種情況下的標記應該是這樣的:

<li id="132" class="main"><label class="name">Ajay</label> 
<div class="hidden" id="132" > 
    <p>Some Msg!!<p> 
</div> 
</li> 

如果是這樣,如果你從div.hidden在他們附近,你會想呼籲label.name元素hovercard,包括信息想是這樣的:

$(".name").each(function() { 
    var $this = $(this); 
    $this.hovercard({detailsHTML:$this.nextAll("div.hidden").html()}); 
}); 

...因爲divlabel不是在一個父/子關係,他們是兄妹。因爲我們需要導航,所以不能在沒有循環的情況下執行此操作。


還要注意的是使用在labeldiv都相同id值無效。 id必須在頁面上是唯一的。還要注意的是id值開始數字是valid in HTML5,但他們invalid in HTML4 and earlier,而且他們invalid in CSS。當你使用jQuery時,這意味着你可能使用了很多CSS選擇器來與你的結構進行交互。由於所有數值的id值在CSS中都是無效的,因此它們在CSS選擇器中無效,最終會導致您的麻煩。

3

正如T.J說,您的標記是無效的。有了正確的標記,只需使用HTML和CSS即可實現。

像這樣:

HTML

<li id="231" class="main"> 
    <label class="name">David</label> 
    <div class="hidden" id="231" > 
     <p>Some Msg!!<p> 
    </div> 
</li> 

CSS

div.hidden { 
    display: none; 
} 
li.main:hover div.hidden { 
    display: block; 
} 

實施例:http://jsfiddle.net/MWbS4/