组合下拉列表未使用javascript jquery getJSON从文本文件生成数据
我有一个名为country.txt的文本文件。数据存储在所述文件中,如下所示:组合下拉列表未使用javascript jquery getJSON从文本文件生成数据,javascript,jquery,drop-down-menu,combobox,getjson,Javascript,Jquery,Drop Down Menu,Combobox,Getjson,我有一个名为country.txt的文本文件。数据存储在所述文件中,如下所示: AF:Afghanistan AX:Åland Islands AL:Albania DZ:Algeria AS:American Samoa AD:Andorra AO:Angola 上述文本文件存储在google drive中 我想在组合下拉列表中获取上述数据。我将代码编写如下: <!DOCTYPE html> <html> <head> <meta
AF:Afghanistan
AX:Åland Islands
AL:Albania
DZ:Algeria
AS:American Samoa
AD:Andorra
AO:Angola
上述文本文件存储在google drive中
我想在组合下拉列表中获取上述数据。我将代码编写如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<div>
<select id="countries" name="countries">
<option selected="selected" value="--Please Select--">--Please Select--</option>
$.getJSON("https://googledrive.com/host/0BxPZgr7ebTBdXzdMVWRZZ3FSSjA/country.txt", function( json ) {
$.each(json, function(key, val) {
$('select[name=countries]').append( "<option value='" + key + "'>" + val + "</option>" );
});
});
</select>
</div>
</body>
</html>
我希望获得国家名称以及相应的值,如下所示:
--Please Select—
Afghanistan
Åland Islands
Albania
Algeria
American Samoa
Andorra
Angola
如果有人在这方面帮助我,我将不胜感激。我认为您的数据文件中存在问题,它不是json文件。您应该在脚本标记中使用$.getJSON。修改文件后,请尝试这样使用:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<div>
<select id="countries" name="countries">
<option selected="selected" value="--Please Select--">--Please Select--</option>
<script>
$.getJSON("https://googledrive.com/host/0BxPZgr7ebTBdXzdMVWRZZ3FSSjA/country.txt").success( function( json ) {
console.log(json);
$.each(json, function(key, val) {
console.log(key,val);
$('select[name=countries]').append( "<option value='" + key + "'>" + val + "</option>" );
});
}).error(function(error){
console.log(error);// currently your data will come here in error.
});
</script>
</select>
</div>
</body>
</html>
但如果仍要使用当前文件进行计数,请使用以下内容替换脚本:
<script>
$.getJSON("https://googledrive.com/host/0BxPZgr7ebTBdXzdMVWRZZ3FSSjA/country.txt").success( function( json ) {
console.log(json);
$.each(json, function(key, val) {
console.log(key,val);
$('select[name=countries]').append( "<option value='" + key + "'>" + val + "</option>" );
});
}).error(function(error){
var x= error.responseText.split('\r\n');
console.log(x);
for(y in x){
var z=x[y].split(":");
if(z[0].length > 1){
$('select[name=countries]').append( "<option value='" + z[0] + "'>" + z[1] + "</option>" );
}
}
});
问题是您将javascript代码放在html标记中,这导致代码也被视为标记的一部分。您应该将代码放在脚本标记之间,并将其放在正文底部。您将数据视为json,但它不是jsonAdded JSFIDLE。首先,我非常感谢您的友好回复。您的第二个代码集已给出成功的结果。“我不知道如果你的问题解决了,请接受答案并结束这里的话题。”Swarupmodaka首先,我非常感谢你的友好回复。您的第二个代码集已给出成功的结果。我想使用您的第一个代码集。为此,我需要准备一个正确的JSON文件。我缺乏创建JSON文件的知识。我创建了如下三行:“{country:['+'{key:AF,val:Afganistan},+'{key:AX,val:Aland Islands},+'{key:AL,val:albana}]};”。看来还是有问题。你能帮帮我吗@用户2466202@suchit@SwarupModak正确的json将是:{country:[{key:AF,val:Afganistan},{key:AX,val:Aland Islands},{key:AL,val:albana}]}转到此链接检查json数据并修改它。
<script>
$.getJSON("https://googledrive.com/host/0BxPZgr7ebTBdXzdMVWRZZ3FSSjA/country.txt").success( function( json ) {
console.log(json);
$.each(json, function(key, val) {
console.log(key,val);
$('select[name=countries]').append( "<option value='" + key + "'>" + val + "</option>" );
});
}).error(function(error){
var x= error.responseText.split('\r\n');
console.log(x);
for(y in x){
var z=x[y].split(":");
if(z[0].length > 1){
$('select[name=countries]').append( "<option value='" + z[0] + "'>" + z[1] + "</option>" );
}
}
});