jquery if语句,选择器

问题描述:

我刚开始使用jQuery,我需要做一些我不太确定的事情。 我知道如果使用jQuery语句就像普通的JavaScript,但我不知道如何在正常的if语句上使用jQuery选择器。jquery if语句,选择器

该函数目前正在工作,但我有两个问题,我不知道如何解决,(我会假设它将与一个if语句,但不知道如何)。

一个问题是,在container1上这个函数不应该被应用,只有两个图像,最大化和最小化,我应该能够显示和隐藏这个。

第二个问题是图像是用来显示(当点击最大化时)和隐藏(当点击最小化时)下面的容器,但函数我与最大化和最小化函数(这是正常的JavaScript和我想制作jQuery)。

我希望它很好地解释。请让我知道,如果你有任何问题。

代码如下。

<html> 
    <head> 
      <script type="text/javascript"> 
    $(document).ready(function(){ 
     $(".Header").click(function(){ 
     $(this).next(" .container").slideToggle("fast"); 
     }); 
     }); 
      </script> 
    </head> 
    <body> 
    <table class="Header"> 
     <tr> 
     <td>header1</td> 
     <td><img alt="minimize" onclick="function to minimise container1"/> 
     <img alt="maximize" onclick="function to maximize container1" /></td> 
     </tr> 
    <table> 
    <div class="container>**Container1**</div> 
    <table class="Header"> 
     <tr> 
     <td>**header2**</td> 
     <td><img alt="minimize" onclick="function to minimise container2"/> 
     <img alt="maximize" onclick="function to maximize container2" /></td> 
     </tr> 
    <table> 
    <div class="container>**Container2**</div> 
    <table class="Header"> 
     <tr> 
     <td>**header3**</td> 
     <td><img alt="minimize" onclick="function to minimise container3"/> 
     <img alt="maximize" onclick="function to maximize container3" /></td> 
     </tr> 
    <table> 
    <div class="container>**Container3**</div> 
    </body> 
    </html> 
+0

把这个分成两个问题怎么样?这两个问题是完全不同的,即使它们影响相同的代码。 – 2010-03-01 10:30:38

+0

对不起,我没有意识到,下次我会考虑这个。 – Amra 2010-03-01 10:35:37

如何:

$(function() { 
    $(".Header:not(#Container1)").click(function(){ 
     var c = $(this).next(".container"); 
     c.slideToggle("fast"); 
    }); 
    $(".Header:not(#Container1)").toggle(
     function(){ $(this).next(".container").next("img").css('display', 'block'); }, 
     function(){ $(this).next(".container").next("img").css('display', 'none'); } 
    ); 
}); 
+0

谢谢,这是非常接近,虽然我slideToggle和显示:块之间的冲突和没有仍然存在。当容器是(display:block)并且你点击最大化时,它会做(slideToggle)来再次显示容器,尽管它已经显示,同样的事情与最小化。 无论如何非常感谢,因为它非常接近我所需要的。 – Amra 2010-03-01 10:44:17

+0

我明白了。在这种情况下,这可能有以下帮助: $(“。Header:not(#Container1)”)。click(function(){varily = $(this).next(“。container”); c .css('display','none'); c.slideToggle(“fast”,function(){c0css('display','block'); }); }); – 2010-03-01 10:54:42

关于在if语句,你只需要使用他们像正常的选择。唯一要注意的是他们回报。

if ($('#thing')) 

如果存在#thing将返回true。

if ($('#thing').hasClass('stuff')) 

将返回true,如果#thing.stuff在那里。

if ($('#thing').text() == "Phil") 

让jQuery返回#thing的任何文本,并将其与'Phil'进行比较。

依此类推。只要想一想你用jQuery抓住了什么,并相应地使用。文档很有帮助。

+1

谢谢你的解释,它真的帮助我理解如何使用选择器和if语句。 :-) – Amra 2010-03-01 10:45:06

+1

很高兴帮助。 :) – 2010-03-01 10:55:31