如果找不到记录,jQuery会隐藏记录标题

时间:2012-03-26 06:42:08

标签: javascript jquery

我有一个条目列表,这些条目按字母顺序缩短,现在我想显示我的条目&点击按钮进入其他条目。

在这段代码中假设我点击了一个按钮,我想要显示我的条目(参见class =“class_my”)with class =“item”&类=“称号”。我可以这样做,但在第二种情况下(id =“h”)没有class =“class_my”,因为我不想显示任何内容(class =“item”& class =“title”)

<li id="g" class="item">
<a name="g" class="title">G</a>
   <ul>
       <li>                   
       <a href="?page_id=242&amp;fid=9&amp;entry=due7ya" class="class_other">Grovy Roy</a>
       <a href="?page_id=242&amp;fid=9&amp;entry=due7ya" class="class_my">Gova Patel</a>
       </li>
   </ul>
</li>
<li id="h" class="item">
    <a name="h" class="title">H</a>
       <ul>
           <li>                   
           <a href="?page_id=242&amp;fid=9&amp;entry=due7ya" class="class_other">Honey Roy</a>

           </li>
       </ul>
    </li>

提前致谢!

3 个答案:

答案 0 :(得分:2)

如果我理解正确,最初会隐藏所有项目,当您点击“我的条目”时,您希望显示其中包含一个项目.class_my的项目。与“其他条目”相同。这是对的吗?

我建议查找该课程,然后使用closest查找父项:

$(".item").hide(); // All them are hidden in the beginning
$("#my_button").click(function() {
    $(".class_my").closest(".item").show();
});

如果这不是您想要实现的目标,请澄清(编辑您的问题以获取更多信息)。还要展示你到目前为止所尝试的内容,这样我们就可以帮助你发现出现了什么问题。

更新:如果所有项目都显示在开头,并且该按钮会隐藏部分项目,请将“全部隐藏”移至您的功能内部:

$("#my_button").click(function() {
    $(".item").hide(); // Hide all them, and...
    $(".class_my").closest(".item").show(); // ...show only the ones you want.
});

答案 1 :(得分:1)

尝试使用此代码。 (btn是你的按钮)。

btn.click(function(){
    $('.class_my').closest('.item').show();
});

答案 2 :(得分:1)

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>StatockOverflow</title>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('.class_my').hide();
            $('.class_my').parent().hide();
            $('.class_other').hide();
            $('.class_other').parent().hide();
        })
    function showanchor(obj) {


        if ($($(obj).parent()).children("ul").children("li").children('a.class_my').length > 0)
            $($(obj).parent()).children("ul").children("li").show();
        $($(obj).parent()).children("ul").children("li").children('a.class_my').show();


        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <ul>
    <li id="g" class="item">
    <a name="g" href="javascript:void(0);" class="title" onclick="showanchor(this);">G</a>
   <ul>
       <li>                   
       <a href="?page_id=242&amp;fid=9&amp;entry=due7ya" class="class_other">Grovy Roy</a>
       <a href="?page_id=242&amp;fid=9&amp;entry=due7ya" class="class_my">Gova Patel</a>
       </li>
   </ul>
</li>
<li id="h" class="item">
    <a name="h" href="javascript:void(0);" class="title" onclick="showanchor(this);">H</a>
       <ul>
           <li>                   
           <a href="?page_id=242&amp;fid=9&amp;entry=due7ya" class="class_other">Honey Roy</a>
           <a href="?page_id=242&amp;fid=9&amp;entry=due7ya" class="class_my">Gova Patels</a>

           </li>
       </ul>
    </li>
    </ul>
    </div>
    </form>
</body>
</html>