jQuery Traversing .next()。show()

时间:2012-04-04 14:11:13

标签: jquery

在jQuery中遍历时遇到了问题..很容易就是一个简单的问题。但是我正在敲打我的脑袋。我试过了.closest().next().find() ..和nada

HTML:

<div class='news_box'>
    <img src='".NEWS.$n[image]."' alt='$n[title] Image' class='news_img' />
    <div class='news_text'>
        <h3>$n[title] // ".date("d.m.Y", strtotime($n[created_on]))." // ".date("H.i", strtotime($n[created_on]))."</h3>
        <p>".substr(strip_tags($n[description]), 0, 90)."... <span title='Read More On $n[title]' class='more'>Read More</span></p>
    </div>
    <p class='clear'></p>
    <div class='full_item'>
        $n[description]
    </div>
</div><!--close news_box-->

Jquery的:

$(".news_box span.more").click(function(){
    $(this).next(".full_item").show();
});

.full_item的CSS设置为display:none 目的是在点击范围.more

时显示div:full_item

提前致谢!

5 个答案:

答案 0 :(得分:2)

.more位于p内,位于.news_text内,.full_item是其中的兄弟。所以以下应该可以解决问题:

$(this).closest('.news_text').siblings('.full_item').show();

.siblings()

答案 1 :(得分:0)

span不是.full_item的兄弟。尝试

$(this).parent().nextAll(".full_item").show();

此外,函数next 将无效,因为.full_item不会紧跟在p的父级之后。请改用nextAll

答案 2 :(得分:0)

我已将解决方案放入jsfiddle:

http://jsfiddle.net/55mUj/

$(".news_box span.more").click(function(){
    $(this).closest('.news_text').siblings('.full_item').show();
});​

答案 3 :(得分:-1)

$(this).parent().next(".full_item").show();

答案 4 :(得分:-1)

$(".news_box span.more").click(function(){
   $(this).closest(".news_box").next(".full_item").show();
});

应该工作。