首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用While循环时显示隐藏的内容

问使用While循环时显示隐藏的内容
EN

Stack Overflow用户
提问于 2013-11-17 15:45:29
回答 1查看 111关注 0票数 1

我正在构建一个页面,它将在用户单击按钮时显示额外的内容。这很好,我可以用javascript或jQuery实现这一点。就像这样。

代码语言:javascript
复制
<img id="doit" src="images/button_reddot.gif" width="125" height="22">
<script>
$( "img#doit" ).click(function() {
$( "#hiddenstuff" ).show( "slow" );
});
</script>
<table id="hiddenstuff" style="display:none" class="hotelform">
<tr class="hotelformborder">
<td>Extra content</td>
</tr>
</table>

当我将该代码包装在PHP循环中多次显示版本时,我的问题就来了。无论我单击哪个按钮,隐藏的内容总是在循环的第一次呈现中显示。

当我单击第二个按钮时,如何在循环的第二个呈现中显示隐藏的内容,等等?

溶液

正如罗里所解释的,问题在于ids的重复使用。然而,使用类也不太有效,因为只要单击一个按钮,隐藏的内容就会显示在循环的所有呈现中。这确实使我的大脑朝着不同的方向运行,所以我设置了一个$i变量,并在每个循环中增加了它。然后ids变成

代码语言:javascript
复制
id="doit<?php echo $i ?>"

和

代码语言:javascript
复制
id="hiddenstuff<?php echo $i ?>"

问题解决了!感谢罗里和其他人的贡献。StackOverflow是个很棒的地方。

EN

回答 1

Stack Overflow用户

发布于 2013-11-17 15:48:49

问题是在循环中使用id属性会产生多个ids,但它们必须是唯一的。试着使用类来代替:

代码语言:javascript
复制
<img class="doit" src="images/button_reddot.gif" width="125" height="22" />
<table class="hiddenstuff" style="display:none" class="hotelform">
    <tr class="hotelformborder">
        <td>Extra content</td>
    </tr>
</table>

然后,您还可以将您的<script />放在<head />中,因为一个函数可以控制在循环中创建的所有元素:

代码语言:javascript
复制
<script type="text/javascript">
    $(function() {
        $('img.doit').click(function() {
            $(this).next('.hiddenstuff').show('slow');
        });
    });
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20032676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档