2012-03-07 53 views
0

我有一种情况,我需要将唯一生成的ID名称的一部分与具有相同ID的div的部分匹配,但使用css隐藏。jquery匹配类

因此,

<a class="popup" id="productTip348_27598" href="#">Link text</a> 

和:

<div class="popupContent" id="productTip348_27598"> ... </div> 

的想法是,我,将鼠标悬停在链接,将与魔法所示的相同ID的div.popupContent。将有多个具有相同类的元素,只是ID是不同的。

我很遗憾不是一个jQuery向导,所以我正在寻找一些帮助。

+5

你说“ID是不同的”,但你显示了两个不同的元素具有相同的ID,这是非法的,可能会导致意想不到的结果。 – devnull69 2012-03-07 11:44:55

回答

2

正如评论中所述,您的示例中有重复的id属性被使用,这是无效的。

相反,尝试把div的idhref atrtribute的a元素的展现:

<a class="popup" href="#productTip348_27598">Link text</a> 

然后在jQuery中,使用href悬停时显示的相关格:

$(".popup").hover(
    function() { 
     $($(this).attr("href")).show(); 
    }, 
    function() { 
     $($(this).attr("href")).hide(); 
    } 
); 
+0

你说得对 - 我不得不稍微修改代码并切换一些值以使其正常工作(并且有效)。相反,我得到了一个更好的结果,在下面评论。 虽然,感谢您的帮助。 :) – Stagen 2012-03-08 07:07:09

1

.popupContent放置在.popup元素内吗?如果是这样;

$(document).ready(function() { 

    $('.popup').hover(
    function() { // Triggered on both mouseenter and mouseleave events 
     $(this).find('.popupContent').toggle(); 
    } 
); 

}); 

“div.popupContent with the ID”。

ID是唯一的,不能与其他元素共享。

+0

你是对的,我不得不改变一下代码,使其工作。 – Stagen 2012-03-08 07:07:50

0

这是我在朋友的帮助下想出的结果。

更改了分配给悬停元素的类的名称。 将弹出的ID更改为data-id的ID,因此它在同一时间更具独特性和有效性。

$(".popupLink").hover(function(){ 
    var selectedId = $(this).attr("id"); 
    $('[data-id='+selectedId +']').toggle() 
}); 

有了这个,我能够实现我的目标。

但是,感谢那些给予他们对该主题的投入的人。非常感激。 :)