以下是我在遵循在线教程时修改的javascript。目标是让2下拉列表首先查询数据库并生成可供选择的选项列表。选择完成后,第二个列表将根据第一个列表中的选择更改其结果。然而第二个下拉列表没有被填充,我认为它在这段代码中,但我对javascript很新。这里有什么不对的,我没有看到。以下是视频https://www.youtube.com/watch?v=d_mT6gD_dDE
的视频enter code here
$(document).ready(function () {
$.getJSON("GetTaxon.php", success = function(data)
{
var options = "";
for(var i = 0; i < data.length; i++)
{
options += "<option value='" + data[i].toLowerCase() + "'>" + data[i] + "</option>";
}
$("#first_choice").append(options);
$("#first_choice").change();
});
$("#first_choice").change(function()
{
$.getJSON("Get_FullName.php?taxon=" + $(this).val(), success = function(data)
{
var options = "";
for(var i = 0; i < data.length; i++)
{
options += "<option value='" + data[i].toLowerCase() + "'>" + data[i] + "</option>";
}
$("#second_choice").html("");
$("#second_choice").append(options);
});
});
});
我得到的错误是我认为:
Uncaught TypeError: Cannot read property 'toLowerCase' of null
at Object.success (script.js:24)
at u (jquery-3.3.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.3.1.min.js:2)
at k (jquery-3.3.1.min.js:2)
at XMLHttpRequest.<anonymous> (jquery-3.3.1.min.js:2)
有没有办法使用toLowerCase参数来避免这种情况?我希望它尽可能接受所有输出,但我不确定如何做到这一点。