2012-05-24 95 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/