Javascript jQuery:获取对特定元素的引用而不使用id

Javascript jQuery:获取对特定元素的引用而不使用id,javascript,jquery,html,xhtml,jquery-traversing,Javascript,Jquery,Html,Xhtml,Jquery Traversing,我正在修改jquery,以便在单击链接时显示隐藏的div。这应该相当简单,但在本例中有一个缺陷。我有以下标记: <div class="first-row"> <div class="week"> <p>Uge 2</p> <p>(08-01-11)</p> </div> <div class="destinat

我正在修改jquery,以便在单击链接时显示隐藏的div。这应该相当简单,但在本例中有一个缺陷。我有以下标记:

<div class="first-row">
        <div class="week">
            <p>Uge 2</p>
            <p>(08-01-11)</p>
        </div>
        <div class="destination">
            <p><a href="#">Les Menuires</a></p>
            <p>(Frankrig)</p>
        </div>
        <div class="days">4</div>
        <div class="transport">Bil</div>
        <div class="lift-card">3 dage</div>
        <div class="accommodation">
            <p><a class="show-info" href="#">Hotel Christelles (halvpension)</a></p>
            <p>4-pers. værelse m. bad/toilet</p>
        </div>
        <div class="order">
            <p><a href="#">2149,-</a></p>
            <p class="old-price">2249,-</p>
        </div>
        <div class="hotel-info">
         <!-- The div I want to display on click -->
        </div>
    </div>
但是没有结果:-/这有可能吗

非常感谢您的帮助

提前多谢

试试这个:

$('.show-info').click(function() {
    $(this).closest('.accommodation').siblings('.hotel-info').show();
});
更好的是,imo独立于链接所在的行,如果每个“row div”都有相同的类(我假设只有第一个有class
第一行
),您可以:

$(this).closest('.row-class').find('.hotel-info').show();
参考:


解释代码不起作用的原因:

$(this).parent().parent();
为您提供带有class
div
。住宿
,此div没有class
的后代。hotel info


无论如何,对多个级别使用这种遍历不是一个好主意。如果结构稍有改变,代码就会中断。始终尝试使用不会因结构更改而中断的方法。

不使用ID元素查找所需DIV是正确的:)

使用最近的
和下一个

现场演示:


你要显示的div名为
.hotel info
,但你的代码正在显示
.show hotel
-这只是一个输入错误吗?Rory,谢谢-这是一个输入错误,但不幸的是它没有解决我的问题:(嗨Felix,这很有魅力!:)名字“第一排”这可能会造成误导,因为它实际上每第二行都使用一次,以使背景不同。所以第一个解决方案是briliant!非常感谢!
$(this).parent().parent();
$('.show-info').click(function(){
    $(this).closest('.accommodation').nextAll('.hotel-info').toggle();
});