【问题标题】:hidden div doesn't appears where i want it to appear隐藏的 div 没有出现在我希望它出现的位置
【发布时间】:2014-07-15 10:14:54
【问题描述】:

这是我第一次在这里发帖。希望你能理解我的问题!

    <script  language="JavaScript">
       function setVisibility(id, visibility) 
       {
           document.getElementById(id).style.display = visibility;
       }
    </script>   



    <% for(cart c: cart) {%>

    <td> ......</td>
    <td> ......</td>
    <td> ......</td>
    <td> ......</td>
    <td>
     <input type=button name=type value='Edit' onclick="setVisibility('DivQTY', 'inline');">                            

            <div id="DivQTY" style="display: none">
                 <input type="text" name="qty">
                 <form action="doEditCart.jsp?id=<%= c.getID() %>" method="post">
                    <input type="submit" value="Save">
                 </form>
             </div>
    </td>
    <% }%>

这会显示一个表格,并在每一行中显示一个“编辑”按钮。

我的问题是,如果我按下任何一行中的任何“编辑”按钮,“文本框”和“保存”按钮只会出现在第一行。

在这次捕获中,我在第四行按下了编辑。 如何在我按下编辑按钮的行中显示文本框和保存按钮?

谢谢。

【问题讨论】:

  • 这行&lt;% for(cart c: cart) {%&gt; 的含义是什么,其中cart 被使用了两次。发布您的实际代码。
  • 它说太长了。我在这里的实际问题(我认为是这样)它只需要 html。当我按下编辑时,我只想在每一行中显示文本框和按钮。
  • 我的意思是在我按下编辑按钮的那一行

标签: java html jsp visibility


【解决方案1】:

问题出在下面一行,您为每个div 使用相同的id

<div id="DivQTY" style="display: none">

元素 ID 在整个文档中应该是唯一的。为 HTML 中的每个元素使用不同的动态 ID。

HTML 4.01 specification 表示 ID 必须在文档范围内唯一。

在此处了解更多信息Two HTML elements with same id attribute: How bad is it really?

【讨论】:

  • 如果 id 相同,那么document.getElementById(id) 将只返回一个元素。
【解决方案2】:

您的for 语句正在创建具有相同id 属性的不同&lt;div&gt; 元素,这是不允许的。

作为一种解决方案,您可以使用购物车的 id (c.getID()) 作为 div 的 id 的一部分:

(...)
<input type=button name=type value='Edit' onclick="setVisibility('DivQTY<%=c.getID()%>', 'inline');">                            

    <div id="DivQTY<%=c.getID()%>" style="display: none">
(...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    相关资源
    最近更新 更多