jQuery.ech()无法识别所有元素



所以我有了基于网格的布局:

<div id="gridrow" class="clear">
<div id="gridsection" class="float-left">
    <div id="gridwrap">
        <div id="gridimage" class="clear"></div>
        <div id="gridtitle" class="clear">Title</div>
        <div id="gridinfo" class="clear">Info</div>
    </div>
</div>
<div id="gridsection" class="float-right">
    <div id="gridwrap">
        <div id="gridimage" class="clear"></div>
        <div id="gridtitle" class="clear">Title</div>
        <div id="gridinfo" class="clear">Info</div>
    </div>
</div>
<div id="gridsection" class="gridmiddle">
    <div id="gridwrap">
        <div id="gridimage" class="clear"></div>
        <div id="gridtitle" class="clear">Title</div>
        <div id="gridinfo" class="clear">Info</div>
    </div>
</div>

然后我有了这个jQuery脚本:

$("#gridtitle").each(function(index){
    $("#gridtitle:eq("+index+")").click(function (){
        $("#gridimage:eq("+index+"), #gridinfo:eq("+index+")").slideToggle();
    });
});

我认为这会起作用(合乎逻辑),然而,只有第一个网格元素会起作用,有什么提示吗?

有关更多信息,请随时询问,

谢谢。

不同的元素必须具有不同的ID。

若两个或多个元素具有相同的ID,则只使用第一个。

ID是唯一的,每个对象只能使用一个。您可以使用classed,并更改选择器:

$(".gridtitle").each(function(index){
    $(".gridtitle:eq("+index+")").click(function (){
        $(".gridimage:eq("+index+"),.gridinfo:eq("+index+")").slideToggle();
    });
});​
这是因为gridtitleid。您应该将其更改为class,并选择如下:
$(".gridtitle").each(function() { ... });

最新更新