<div>标记id在while循环中重复

时间:2015-08-12 07:50:05

标签: jquery html twitter-bootstrap jsp

我正在使用JSP开发一个小型Web应用程序,成功检索数据,我的任务是使用bootstrap选项卡式菜单将选项卡下的数据分组。真正的任务是根据选项卡单击显示数据。但是当我尝试在单个选项卡中显示多行时,它只显示最后一行(值)。这是因为div标签id正在重复。请找到下面的代码并告诉我我在哪里犯了错误。(我想将id分组,如果它重复,但我无法找到它)

我的HTML代码:

while (rs1.next()) {
                    PositionID = rs1.getString(1);
                    PositionTitle = rs1.getString(2);
                    StudentID = rs1.getString(7);
                    Bio = rs1.getString(10);
                    ProfileID = rs1.getString(11);
        %>

            <div class="tab-pane fade active in" id="<%=PositionTitle%>">
                <%

                %>
                <div class="col-md-5">
                    <input type="radio" name="<%=ProfileID%>"
                        value="<%=ProfileID%>"><%=FirstName%>,
                    <%=LastName%><br>
                </div>

            </div>


            <%




                    }
                %>
                </div>
            <%

                    connection.close();
                    }

                    catch (Exception e) {
                        e.printStackTrace(response.getWriter());
                    }
                %>

This is the inspect element snap shot, based the code the id is getting repeated

1 个答案:

答案 0 :(得分:1)

我可以使用javascript提供解决方案但是,如果您在后端有解决方案,则必须使用它。

首先,如果您的网页具有相同的ID而不是一个坏事。您必须使用其他内容更改id属性(例如data-id)。

var uniqueIds = [];

$(".tab-pane").each( function () {

    var id = $(this).attr("data-id");

    if ( $.inArray( id, uniqueIds ) == -1 )
        uniqueIds.push( id )

});

for ( var i = 0; i < uniqueIds.length; i++ ) {

    var allItems = $("[data-id='" + uniqueIds[i] + "']");    
    var firstItem = allItems.eq(0);
    var restItems = allItems.not(":eq(0)");

    restItems.appendTo( firstItem )

}

我会为它创造一个小提琴。你也可以在那里看到它。

http://jsfiddle.net/ebilgin/vyf1gswv/1/