Javascript 仅显示/隐藏一个元素的DOM

Javascript 仅显示/隐藏一个元素的DOM,javascript,dom,Javascript,Dom,我基本上有这样多个元素: <tr class="class1"> ... </tr> <tr class="class1"> ... </tr> <tr class="class1"> ... </tr> <tr class="class1"> ... </tr> dom.query(".class1").live("click", function() { if (dom.query("#

我基本上有这样多个元素:

<tr class="class1">
...
</tr>
<tr class="class1">
...
</tr>
<tr class="class1">
...
</tr>
<tr class="class1">
...
</tr>
dom.query(".class1").live("click", function() {
    if (dom.query("#div1InsideClass1").is(':visible')) {
        dom.query("#div1InsideClass1").hide();
        ...
    } else {
        dom.query("#div1InsideClass1").show();
        ...
    }
});

但是这个函数的工作方式是,它为上面的每个实例以及declass1中的每个#div1实例执行该函数。是否有方法检测单击了哪个特定的tr元素?我听说.next()函数通常有用,但我不确定。

您有一个根本问题:html上不能有重复的ID。你首先需要解决这个问题

假设您向那些名为
div1InsideClass1
的div中添加了一个css类,这应该可以实现

$(".class1").live("click", function() {
    $(this).find('.div1InsideClass1').toggle();
});
如果您需要继续使用
If
语句,此代码是等效的,但允许您在
If-else

$(".class1").live("click", function() {
    var $this = $(this);
    var $div = $this.find('.div1InsideClass1');
    if ($div.is(':visible')) {
        $div.hide();
        ...
    } else {
        $div.show();
        ...
    }
});

元素ID应该是唯一的。可能是重复的我想你弄错了我想他有一些类似Div1InDeclass1 Div2InDeclass1等的东西