首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jquery在单击另一个div时切换div?

如何使用jquery在单击另一个div时切换div?
EN

Stack Overflow用户
提问于 2017-07-13 16:47:49
回答 4查看 56关注 0票数 0

我想在单击"prdfinder“div时切换"prdseries”div。

我正在尝试下面的jquery,但它只切换第一个div。如果我点击另一个,它就不工作了。

我的Html将使用foreach:

代码语言:javascript
复制
<div id="prdfinder">Cisco BX SFP Transceiver (bi-directional)</div><br/>
<div id="prdseries">
<span id ="series_list">1000BASE-BX20-D SFP for Cisco (Downstream)</span><br/><br/>
<span id ="series_list">1000BASE-BX40-D SFP for Cisco (Downstream)</span><br/>
<span id ="series_list">1000BASE-BX60-D SFP for Cisco (Downstream)</span><br/>
<span id ="series_list">1000BASE-BX80-D SFP for Cisco (Downstream)</span><br/>
<span id ="series_list">1000BASE-BX20-U SFP for Cisco (Upstream)</span><br/>
<span id ="series_list">1000BASE-BX40-U SFP for Cisco (Upstream)</span><br/>
<span id ="series_list">1000BASE-BX60-U SFP for Cisco (Upstream)</span><br/>
<span id ="series_list">1000BASE-BX80-U SFP for Cisco (Upstream)</span><br/>
</div>
<div id="prdfinder">Cisco BX SFP+ Transceiver (bi-directional)</div><br/>
<div id="prdseries">
<span id ="series_list">10GBASE-BXD SFP+ for Cisco (Downstream)</span><br/>
<span id ="series_list">10GBASE-BXU SFP+ for Cisco (Upstream)</span><br/>
</div>
<div id="prdfinder">Cisco CWDM SFP Transceiver</div><br/>
<div id="prdseries">
<span id ="series_list">CWDM SFP for Cisco</span><br/>
</div>

下面是我的代码:

代码语言:javascript
复制
<?php 
    $k = 0;
    foreach($seriesArray as $finaldata){
        if($finalMake!='' && $finalModel!='' && $finalSeries!=''){?>
            <?php if((!in_array($finalMake, $finalmakearray)) || (!in_array($finalModel, $finalmodelarray))): ?>
                    <?php array_push($finalmakearray ,$finalMake); ?>
                    <?php array_push($finalmodelarray ,$finalModel); ?>
                    <?php $k++; ?>
            <?php echo '</div><div id="prdfinder'.$k.'">'.$finaldata[1]['make'][0].'    '.$finaldata[0]['model'][0].'</div><br/><div id="prdseries">'; ?>
            <?php endif ; 
            echo '<span id="series_list'.$k.'">'.$seriesUrl.'</span><br/><br/>';
        }
    }
?>

<script>
var count=0;
jQuery(document).ready(function(){
    count++;
    jQuery("#prdfinder"+count).click(function(){
        jQuery("#prdseries"+count).toggle();
    });
});
</script>
EN

回答 4

Stack Overflow用户

发布于 2017-07-13 16:57:00

试试看这个

代码语言:javascript
复制
<?php 
    $k = 0;
    foreach($seriesArray as $finaldata){
        if($finalMake!='' && $finalModel!='' && $finalSeries!=''){
            if((!in_array($finalMake, $finalmakearray)) || (!in_array($finalModel, $finalmodelarray))):
                array_push($finalmakearray ,$finalMake);
                array_push($finalmodelarray ,$finalModel);
                $k++;
                echo '</div><div class="prdfinder" data-id="prdseries'.$k.'">'.$finaldata[1]['make'][0].'    '.$finaldata[0]['model'][0].'</div><br/><div id="prdseries'.$k.'">';
            endif ; 
            echo '<span id="series_list'.$k.'">'.$seriesUrl.'</span><br/><br/>';
        }
    }
?>

<script>
jQuery(document).ready(function(){
    jQuery(".prdfinder").click(function(){
        var divid = jQuery(this).data('id');
        jQuery(divid).toggle();
    });
});
</script>
票数 0
EN

Stack Overflow用户

发布于 2017-07-13 17:06:46

这应该会像您预期的那样工作。但是,应该将id's切换为classes (就像我在这里所做的那样),或者分配不同的id's。在这里,这适用于修改为classesid's

代码语言:javascript
复制
jQuery(document).ready(function(){
    jQuery(".prdfinder").click(function(){
    	if(jQuery(this).nextAll('.prdfinder').length){
        	jQuery(this).nextUntil('.prdfinder').toggle();
        } else {
        	jQuery(this).nextAll('.prdseries').toggle();
        }
    });
});
代码语言:javascript
复制
.prdfinder{
    padding:0 5px;
    background:grey;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="prdfinder">Cisco BX SFP Transceiver (bi-directional)</div><br/>
<div class="prdseries">
<span class ="series_list">1000BASE-BX20-D SFP for Cisco (Downstream)</span><br/><br/>
<span class ="series_list">1000BASE-BX40-D SFP for Cisco (Downstream)</span><br/>
<span class ="series_list">1000BASE-BX60-D SFP for Cisco (Downstream)</span><br/>
<span class ="series_list">1000BASE-BX80-D SFP for Cisco (Downstream)</span><br/>
<span class ="series_list">1000BASE-BX20-U SFP for Cisco (Upstream)</span><br/>
<span class ="series_list">1000BASE-BX40-U SFP for Cisco (Upstream)</span><br/>
<span class ="series_list">1000BASE-BX60-U SFP for Cisco (Upstream)</span><br/>
<span class ="series_list">1000BASE-BX80-U SFP for Cisco (Upstream)</span><br/>
</div>
<div class="prdfinder">Cisco BX SFP+ Transceiver (bi-directional)</div><br/>
<div class="prdseries">
<span class ="series_list">10GBASE-BXD SFP+ for Cisco (Downstream)</span><br/>
<span class ="series_list">10GBASE-BXU SFP+ for Cisco (Upstream)</span><br/>
</div>
<div class="prdfinder">Cisco CWDM SFP Transceiver</div><br/>
<div class="prdseries">
<span class ="series_list">CWDM SFP for Cisco</span><br/>
</div>

注意:这种方法完全没有id的.

票数 0
EN

Stack Overflow用户

发布于 2017-07-13 17:06:59

您需要给它一个class属性,而不是使用id属性。

代码语言:javascript
复制
<div class="prdfinder" data-id=1>Cisco BX SFP Transceiver (bi-directional)</div><br/>
<div class="prdseries" id="prdseries1">
<span class ="series_list">1000BASE-BX20-D SFP for Cisco (Downstream)</span><br/><br/>
<span class ="series_list">1000BASE-BX40-D SFP for Cisco (Downstream)</span><br/>
<span class ="series_list">1000BASE-BX60-D SFP for Cisco (Downstream)</span><br/>
<span class ="series_list">1000BASE-BX80-D SFP for Cisco (Downstream)</span><br/>
<span class ="series_list">1000BASE-BX20-U SFP for Cisco (Upstream)</span><br/>
<span class ="series_list">1000BASE-BX40-U SFP for Cisco (Upstream)</span><br/>
<span class ="series_list">1000BASE-BX60-U SFP for Cisco (Upstream)</span><br/>
<span class ="series_list">1000BASE-BX80-U SFP for Cisco (Upstream)</span><br/>
</div>
<div class="prdfinder" data-id=2>Cisco BX SFP+ Transceiver (bi-directional)</div><br/>
<div class="prdseries" id="prdseries2">
<span class ="series_list">10GBASE-BXD SFP+ for Cisco (Downstream)</span><br/>
<span class ="series_list">10GBASE-BXU SFP+ for Cisco (Upstream)</span><br/>
</div>
<div class="prdfinder" data-id=3>Cisco CWDM SFP Transceiver</div><br/>
<div class="prdseries" id="prdseries3">
<span class ="series_list">CWDM SFP for Cisco</span><br/>
</div>

<script>
jQuery(document).ready(function(){
    $(".prdfinder").addEventListener('click', function(){
        var dataId = $(this).data("id");
        $("#prdseries"+dataId).toggle();
    });
});
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45075707

复制
相关文章

相似问题

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