使用jQuery隐藏与另一个类相同的div?

时间:2011-03-27 08:16:54

标签: php jquery

基本上,我想用jQuery完成以下内容:

    <div class="120 most-voted">
       <!-- DON'T HIDE THIS DIV -->
    </div>


    <div class="110 voted">
       <!-- some stuff here -->
    </div>

    <div class="120 voted">
       <!-- hide this div with class '120' since there's already 
            another div with class '120' at the top -->
    </div>

    <div class="23 voted">
       <!-- some stuff here -->
    </div>

编辑:数字由PHP函数动态生成:

    <?php $postid = get_the_ID(); // capture the id ?>

    <div id="<?php echo $postid; ?>" class="most-voted">

我不想隐藏顶部的div。

任何建议(我不介意在顶部div中包含另一个div来完成此结果)?

4 个答案:

答案 0 :(得分:1)

它无效的html,id必须在文档中是唯一的

http://www.w3.org/TR/html401/struct/global.html#h-7.5.2

答案 1 :(得分:1)

这将使第一个div显示类“v120”,其他所有隐藏:

var theClass = "v120";
$("div." + theClass).first().show().end().not(":first").hide();

Live example

(我将“v”添加到“120”因为我不确定“120”是否是有效的CSS类。)

如何运作:

  1. 在课程中找到所有div - $()
  2. 暂时将该设置减少到第一场比赛 - .first()
  3. show那个(以前是隐藏的)
  4. 结束集合的临时缩减 - .end()
  5. 将设置仅减少为的匹配项 - .not(":first")
  6. hide他们

答案 2 :(得分:0)

使用rel属性而不是ID。然后使用选择器,如:

$('div.voted[rel=110]')

答案 3 :(得分:0)

如果你想使用相同的div,你应该使用class属性,因为不允许使用double id。

 <div class="most-voted id_120">
   <!-- some stuff here -->
</div>


<div  class="voted id_110">
   <!-- some stuff here -->
</div>

<div  class="voted id_120">
   <!-- hide this div with id 120 since its already 
        at the top in the div with class most-voted -->
</div>

<div  class="voted id_100">
   <!-- some stuff here -->
</div>

使用它来找到http://api.jquery.com/first-selector/

上的第一个