5

我是 jQuery 新手,所以请原谅!

我有一个 PHP 函数,它从 MySQL 数据库返回一个博客;它返回标题、副标题和内容。

$result = getData();  
            while($row = mysqli_fetch_array($result))
            {
                extract($row);
                ?>
                    <div class="headline"><?php echo $headline ?></div>
                    <div class="subtitle"><?php echo $subTitle ?></div>
                    <div class="content"><?php echo $content ?></div>
                    <?php
            } 

到目前为止显示了三个条目。我有一个 jQuery,它隐藏内容并在使用 nextUntill 方法和内容上的 .slideToggle 单击标题时展开它。

    $(".content").hide();

$(".headline").click(function(){
    $(this).nextUntil(".headline").slideToggle(500);  
}); 

我的问题是在每个 div 上执行 slideToggle 直到下一个标题,其中包括副标题。因此,当单击标题时,会显示内容,但标题会消失。

我不能只选择要滑动的内容,因为它会滑动所有三个内容 div 然后显示。

有没有办法在标题和内容之间排除副标题?

提前致谢!

4

2 回答 2

2

假设我对您的理解正确,您想隐藏下一个.content元素。如果这是正确的,您可以从以下同级集合中获取与该选择器匹配的第一个元素:

$(this).nextAll(".content").eq(0).slideToggle(500);

或者,按照您的建议进行操作,您可以使用not

$(this).nextUntil(".headline").not(".subtitle").slideToggle(500);

这是第一个版本的工作示例

于 2012-06-04T10:23:40.447 回答
1

我猜测,因为我以这种方式理解问题,所以你可以尝试notSelector .not()

$(this).nextUntil(".headline").not(".subtitle").slideToggle(500);  
于 2012-06-04T10:23:50.093 回答