JQuery选择函数不显示div

JQuery选择函数不显示div,jquery,Jquery,在另一个Stackoverflow帖子的帮助下,我有一个JQuery函数,它根据当前在选择/下拉列表中选择的内容隐藏/显示div。这个很好用 编辑记录时,选择字段的存储值显示在选择/下拉列表中,但相应的div保持隐藏,直到对选择字段进行更改 代码 我尝试了上述代码的各种组合,以在更新视图值上直接显示div,但到目前为止都没有成功 任何帮助都将不胜感激 请发布相应的HTML,我很难理解您的确切问题,但我详细分析了您的代码在做什么,这样您就可以从中找到答案 <script> $(

在另一个Stackoverflow帖子的帮助下,我有一个JQuery函数,它根据当前在选择/下拉列表中选择的内容隐藏/显示div。这个很好用

编辑记录时,选择字段的存储值显示在选择/下拉列表中,但相应的div保持隐藏,直到对选择字段进行更改

代码

我尝试了上述代码的各种组合,以在更新视图值上直接显示div,但到目前为止都没有成功


任何帮助都将不胜感激

请发布相应的HTML,我很难理解您的确切问题,但我详细分析了您的代码在做什么,这样您就可以从中找到答案

<script>
    $(document).ready(function () {

        $('.jshideshow').hide(); // 1

        $('#id_selection_basis').change(function () {
            $('.jshideshow').hide(); // 2
            $('#'+$(this).val()).show(); // 3
        })

    }); 
</script>
由于默认情况下隐藏.jshideshow,因此将display:none设置为在html中的元素上内联,或者将其添加到css类中,但这不会导致您的问题

这也隐藏了.jshideshow——为什么需要隐藏已经隐藏的东西?如果所有要显示/隐藏的div都有这个类,那么在调用之前就隐藏了它们,这是有意义的

这将显示id\u selection\u basis值中包含的任何元素


如果要将元素添加到id_selection_basis,则需要使用$document侦听更改事件。在'change','id_selection_basis',函数{…}。事件侦听器在页面加载时绑定到DOM,因此如果在页面加载后向DOM添加元素,则需要在$document上侦听它。

经过一次小小的顿悟,我想我找到了解决方案。希望它能帮助其他有类似问题的人

<script>
    $(document).ready(function () {
        $('.jshideshow').hide();
        var failureValue = $( "#id_selection_basis" ).val();
        $('#' + failureValue).show();

        $('#id_selection_basis').change(function () {
            $('.jshideshow').hide();
            $('#'+$(this).val()).show();
        })

    });
</script>   

请在questionHi@Brian中添加相关HTML,这是我获得代码的演示:这很好用。但是,当我在Django中打开一个更新视图,并且选择/下拉列表有一个值时,相应的div保持隐藏状态,直到选择/下拉列表上发生“更改”。希望这是有意义的,谢谢您的帮助。@Karl您正在隐藏.jshideshow页面加载,在触发更改事件之前它不会再次显示。不要隐藏要在加载时显示的div。谢谢您的帮助。我想我找到了解决办法。不知道它有多优雅,但它似乎做到了这一点!再次感谢。
<script>
    $(document).ready(function () {
        $('.jshideshow').hide();
        var failureValue = $( "#id_selection_basis" ).val();
        $('#' + failureValue).show();

        $('#id_selection_basis').change(function () {
            $('.jshideshow').hide();
            $('#'+$(this).val()).show();
        })

    });
</script>