javascript - 将变量传递给 JavaScript 函数
问题描述
我有以下功能
<script type="text/javascript">
function showUser(test, order)
{
const but = document.getElementById(test);
if(but.getAttribute("onClick") === `showUser('${test}','DESC')`)
{
but.setAttribute("onClick",`showUser('${test}','ASC')`);
}
else
{
but.setAttribute("onClick",`showUser('${test}','DESC')`);
}
var users = document.getElementById('instructor-filter').value;
var club = document.getElementById('club-filter').value
var sort = test;
var order = order;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajaxcall.php?student_instructor="+users+"&club="+club+"&sortby="+sort+"&orderby="+order,true);
xmlhttp.send();
}
我在我的代码的两个地方调用这个函数,就像这样
<select id="instructor-filter" onChange="showUser()">
和
<div class="col-sm-2"><a id="student_forename" onClick="showUser('student_forename','ASC')">Forename</a></div>
一个调用不需要将任何变量传递给函数,而另一个调用确实需要将两个变量传递给它。
这导致了我调用的一个不传递任何变量的问题不再起作用,而另一个则起作用。
因为我在函数中设置了两个变量,这是否意味着每次使用该函数时我都必须提供两个值?
解决方案
当您不传递任何值时,默认情况下它将被视为未定义。您可能需要在函数内部设置一些默认值以使变量工作。
推荐阅读
- django - 直接在服务器上从 React 后端访问 API
- javascript - 如何修复每次单击鼠标时都没有出现的 Ball 类
- ios - FIDO2 一致性工具 TypeError:无法读取未定义的属性“1”
- vb.net - ReceiveBufferSize - 从具有高延迟的服务器下载
- microservices - Resilience 4j 和 Prometheus 的集成
- javascript - 使用两个谷歌图表时,一个垂直轴消失
- reactjs - 如何在新的 ImageWMS 中使用 openlayers getUrl 函数?
- c# - 在 CosmosDB 模拟器中插入的文档在 Azure 在线 CosmosDB 中不起作用
- scala - 重写 Apache Spark 管道以使用现有模型
- java - 我如何从 grails 控制器中使用 restful api?