首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将包含另一个div类的变量传递给JS函数,并使用它显示/隐藏相应的div?

如何将包含另一个div类的变量传递给JS函数,并使用它显示/隐藏相应的div?
EN

Stack Overflow用户
提问于 2015-11-08 17:39:35
回答 3查看 45关注 0票数 0

我已经设置了这个html代码来使用:

代码语言:javascript
复制
<span  onclick="togfullspace('unord')">nord</span>
<span onclick="togfullspace('ucenter')">centro</span>
</br>
<div id = "level" class="unord">Hello</div>
<div id="level" class="ucenter">Hi</div>

id和类都已在css中设置为display:none;

在JavaScript中,我希望togfullspace函数在单击"nord“和"Hi”时显示"Hello“,当我单击”div“时,如果其中一个div是可见的,我希望JS在显示单击的div之前隐藏它。这是我的JS代码:

代码语言:javascript
复制
jQuery(function ($) {
    $(document).click(function togfullspace(classe) {
        var idclass = '#level.' + classe;

        if (!$('#level').is(':hidden')) {
            $('#level').hide();
        } else {
            if ($(idclass).is(':hidden')) {

                $(idclass).show();

            } else {

                $(idclass).hide();

            }
        }
    });
});

如果不是使用变量idclass,而是使用"#level.unord",那么它可以工作(仅用于<div class="unord">),所以我想我在这里处理变量的方式有问题。任何帮助都将不胜感激,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-08 17:52:45

我编辑了您的代码来稍微清理一下,但它的工作原理是很少修改的:

HTML:

代码语言:javascript
复制
<span class="clickable">unord</span>
<span class="clickable">ucenter</span>
</br>
<div class="level" id="unord">Hello</div>
<div class="level" id="ucenter">Hi</div>

jQuery:

代码语言:javascript
复制
$(".clickable").click(function(){
    var id = "#" + $(this).text();
    alert($(id).text());
    $(".level").hide();
    if ($(id).is(':hidden')) {
        $(id).show();
    } else {
        $(id).hide();
    }
});

下面是JSFiddle.net上的一个工作示例。

票数 1
EN

Stack Overflow用户

发布于 2015-11-08 17:48:57

根据HTML5 规格说明,您不能有多个具有相同id的元素。

换句话说,$('#level').is(':hidden')只检查第一个div。

我的建议是:使用公共类来表示级别,而不是ids:

代码语言:javascript
复制
<div class="level unord">Hello</div>
<div class="level ucenter">Hi</div>
票数 0
EN

Stack Overflow用户

发布于 2015-11-08 17:52:39

HTML:

代码语言:javascript
复制
<span data-cor="div1">div 1</span>
<div class="div1">this is div 1</div>

jQuery:

代码语言:javascript
复制
$('span').on('click',function(){
    $('.'+$(this).data('cor')).toggleClass('hidden');
    // or use slideToggle instead
});

代码不只是为了例如目的而进行测试。

其他选项是获取元素索引,但两者相对于其父元素应该具有相同的索引。这两种元素都是不同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33596931

复制
相关文章

相似问题

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