javascript - 如何在Javascript中使用子例程?

标签 javascript html

我有以下代码...

<script>
    if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) {
        const currentBaseValue1 = $('#selectedBaseRelease').val();
        const currentBaseValue = currentBaseValue1+'.hidden';
        $(document).ready(function() {
            $('#baseText').empty().append(currentBaseValue);
            $('#selectedBaseRelease').on('click.select2', function(event) {
                const currentBaseValue = $('#selectedBaseRelease').val();
                $('#baseText').empty().load(currentBaseValue);
            });
            $('#baseText').empty().load(currentBaseValue);
        });
    }
</script>

在代码的其余部分中,前导 if 语句有所不同,const 声明也是如此。但是 $(document).ready(function() {...} 部分被一遍又一遍地重用,没有改变,所以我想将它表示为一个函数/子例程。此时总代码超过 400 行,但如果我能让这个函数/子例程工作的话,可以减少到不到 200 行。我已经尝试过这样做......

<script type="text/javascript">
    function loadbaseText() {
        $(document).ready(function() {
            $('#baseText').empty().append(currentBaseValue);
            $('#selectedBaseRelease').on('click.select2', function(event) {
                const currentBaseValue = $('#selectedBaseRelease').val();
                $('#baseText').empty().load(currentBaseValue);
            });
            $('#baseText').empty().load(currentBaseValue);
        });
    }
</script>

...最终,紧随其后的是...

<script>
    if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) {
        const currentBaseValue1 = $('#selectedBaseRelease').val();
        const currentBaseValue = currentBaseValue1+'.hidden';
        loadbaseText();
    }
</script>

...但它不起作用。我是 HTML/Javascript 菜鸟,所以我确信这不是一个复杂的问题,但我似乎找不到正确的解决方案。有人可以帮忙吗?目前我最好的猜测是 const 的范围在某种程度上是不够的。

谢谢!

最佳答案

只需使用该值作为参数,如下所示

function loadbaseText(value) {
        $(document).ready(function() {
            $('#baseText').empty().append(value);
            $('#selectedBaseRelease').on('click.select2', function(event) {
                const currentBaseValue = $('#selectedBaseRelease').val();
                $('#baseText').empty().load(value);
            });
            $('#baseText').empty().load(value);
        });
    }

像这样使用它:

if (document.getElementById("hidden").checked === true && document.getElementById("unlisted").checked === false) {
        const currentBaseValue1 = $('#selectedBaseRelease').val();
        const currentBaseValue = currentBaseValue1+'.hidden';
        loadbaseText(currentBaseValue);
    }

关于javascript - 如何在Javascript中使用子例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51657376/

相关文章:

html - 修复 bootstrap 4 中的一个菜单问题,避免每个子下拉菜单相互重叠

html - 如何使列表项内的链接占用整个列表项空间?

html - 链接在 iPhone 上打开 PDF,但在笔记本电脑上打不开

html - 悬停时从左上角移动到右下角

JavaScript 仅在调用 alert() 时有效

Javascript 无法捕获 WebSocket 实例化中的错误

php - 我怎样才能说服我的客户试图隐藏浏览器工具栏是个坏主意?

javascript - CSS 基于 % 宽度的 jQuery 设置高度

javascript - 从某个类中查找值 (HTML)

javascript - 使数组成为一个将给定值添加到数组中的数字的函数