我有以下代码...
<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的范围在某种程度上不足。
谢谢!
答案 0 :(得分:2)
只需将值用作这样的参数
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);
}