如何告诉javascript从JSON中提供所选信息 [ {“id”:“1”,“firstName”:“John”,“lastName”:“Doe”,“role”:“engineer”,“age”:“25”}, {“id”:“2”,“firstName”:“Jax”,“lastName”:“Ali”,“role”:“Software engineer”,“age”:“35”}, {“id”:“3”,“firstName”:“Suz”,“lastName”:“Ibra”,“role”:“Developer”,“age”:“23”}, {“id”:“4”,“firstName”:“Alia”,“lastName”:“Arnold”,“role”:“UX Designer”,“age”:“28”}, {“id”:“5”,“firstName”:“Jack”,“lastName”:“Jones”,“role”:“Programmer”,“age”:“37”} ] 试验侧 window.onload=oppstart; var laster//xmlhttp 风险人; 函数oppstart(){ laster=newXMLHttpRequest(); var filnavn=“data.json”+”?id=“+Math.random(); //警报(filnavn); laster.open(“GET”,filnavn,true); laster.onreadystatechange=ferdiglaset; laster.send(); } 函数ferdigLastet(){ if(laster.readyState==4&&laster.status==200){ person=JSON.parse(laster.responseText); 对于(变量i=0;i“”+s.firstName+“”)。加入(“”); selectBox.addEventListener(“更改”,函数(){ var data=JSON.parse(this.value); document.getElementById(“utskrift”).innerHTML=Object.keys(数据).map(函数(键){ 返回“+键+”-“+数据[键]+” }).加入(“”); })
如何告诉代码从所选选项列表名称获取信息? 因此,如果我从选项列表中选择JACK,我希望代码从JSON文件中为我提供他的信息。它当前提供给我的是选项值,而不是我的如何告诉javascript从JSON中提供所选信息 [ {“id”:“1”,“firstName”:“John”,“lastName”:“Doe”,“role”:“engineer”,“age”:“25”}, {“id”:“2”,“firstName”:“Jax”,“lastName”:“Ali”,“role”:“Software engineer”,“age”:“35”}, {“id”:“3”,“firstName”:“Suz”,“lastName”:“Ibra”,“role”:“Developer”,“age”:“23”}, {“id”:“4”,“firstName”:“Alia”,“lastName”:“Arnold”,“role”:“UX Designer”,“age”:“28”}, {“id”:“5”,“firstName”:“Jack”,“lastName”:“Jones”,“role”:“Programmer”,“age”:“37”} ] 试验侧 window.onload=oppstart; var laster//xmlhttp 风险人; 函数oppstart(){ laster=newXMLHttpRequest(); var filnavn=“data.json”+”?id=“+Math.random(); //警报(filnavn); laster.open(“GET”,filnavn,true); laster.onreadystatechange=ferdiglaset; laster.send(); } 函数ferdigLastet(){ if(laster.readyState==4&&laster.status==200){ person=JSON.parse(laster.responseText); 对于(变量i=0;i“”+s.firstName+“”)。加入(“”); selectBox.addEventListener(“更改”,函数(){ var data=JSON.parse(this.value); document.getElementById(“utskrift”).innerHTML=Object.keys(数据).map(函数(键){ 返回“+键+”-“+数据[键]+” }).加入(“”); }) ,javascript,json,loops,option,Javascript,Json,Loops,Option,如何告诉代码从所选选项列表名称获取信息? 因此,如果我从选项列表中选择JACK,我希望代码从JSON文件中为我提供他的信息。它当前提供给我的是选项值,而不是我的标记中的信息您可以将字符串化对象本身保存为值,并在更改事件中显示相同的值 [ { "id":"1","firstName":"John", "lastName":"Doe","role":"engineer","age":"25" }, { "id":"2","firstName":"Jax", "lastName
标记中的信息您可以将字符串化对象本身保存为值,并在更改
事件中显示相同的值
[
{ "id":"1","firstName":"John", "lastName":"Doe","role":"engineer","age":"25" },
{ "id":"2","firstName":"Jax", "lastName":"Ali","role":"Software engineer","age":"35" },
{ "id":"3","firstName":"Suz", "lastName":"Ibra","role":"Developer","age":"23"},
{ "id":"4","firstName":"Alia", "lastName":"Arnold","role":"UX Designer","age":"28"},
{ "id":"5","firstName":"Jack", "lastName":"Jones","role":"Programmer","age":"37"}
]
<html>
<head>
<meta charset="utf-8" />
<title>Testside</title>
<script>
window.onload = oppstart;
var laster; //xmlhttp
var person;
function oppstart() {
laster = new XMLHttpRequest();
var filnavn = "data.json" +"?id="+Math.random();
//alert(filnavn);
laster.open("GET",filnavn,true);
laster.onreadystatechange = ferdigLastet;
laster.send();
}
function ferdigLastet() {
if(laster.readyState === 4 && laster.status === 200) {
person = JSON.parse(laster.responseText);
for (var i = 0; i < person.length; i++) {
document.getElementById("nedtrekk").innerHTML+= "<option value='" + person[i].id +"'>" + person[i].firstName +"</option>"
}
}
}
</script>
</head>
<body>
<select name="id" id="nedtrekk">
</select>
<p id="utskrift"></p>
</body>
</html>
selectBox.addEventListener(“更改”,函数(){
var data=JSON.parse(this.value);
document.getElementById(“utskrift”).innerHTML=Object.keys(数据).map(函数(键){
返回“+键+”-“+数据[键]+”
}).加入(“”);
})
演示
var-arr=[
{“id”:“1”,“firstName”:“John”,“lastName”:“Doe”,“role”:“engineer”,“age”:“25”},
{“id”:“2”,“firstName”:“Jax”,“lastName”:“Ali”,“role”:“Software engineer”,“age”:“35”},
{“id”:“3”,“firstName”:“Suz”,“lastName”:“Ibra”,“role”:“Developer”,“age”:“23”},
{“id”:“4”,“firstName”:“Alia”,“lastName”:“Arnold”,“role”:“UX Designer”,“age”:“28”},
{“id”:“5”,“firstName”:“Jack”,“lastName”:“Jones”,“role”:“Programmer”,“age”:“37”}
];
var selectBox=document.getElementById(“nedtrekk”);
选择box.innerHTML=arr.map(s=>“”+s.firstName+“”)。加入(“”);
selectBox.addEventListener(“更改”,函数(){
var data=JSON.parse(this.value);
document.getElementById(“utskrift”).innerHTML=Object.keys(数据).map(函数(键){
返回“+键+”-“+数据[键]+”
}).加入(“”);
})
您需要一个for循环来迭代json,还需要一个检查x值是否等于x值的语句将其推入到for循环外部声明的变量中
例如:
var json=[
{
“姓名”:“玛丽亚”,
“年龄”:14岁
},
{
“姓名”:“雅各布”,
“年龄”:24
},
{
“姓名”:“大卫”,
“年龄”:36
}
];
var-extract=[];
for(var i=0;i
您可以使用jquery,在json文件中搜索非常简单,如下所示:
selectBox.addEventListener( "change", function(){
var data = JSON.parse(this.value);
document.getElementById( "utskrift" ).innerHTML = Object.keys( data ).map( function ( key ){
return "<div>" + key + " - " + data[ key ] + "</div>"
}).join( "" );
})
“+个人[i]。名字+”
之后,您可以这样调用jQuery:
<select onClick="myFunction" id="myselect">
<option onClick="myFunction" value='" + person[i].id +"'>" + person[i].firstName +"</option>
</select>
var数据=[
{“id”:“1”,“firstName”:“John”,“lastName”:“Doe”,“role”:“engineer”,“age”:“25”},
{“id”:“2”,“firstName”:“Jax”,“lastName”:“Ali”,“role”:“Software engineer”,“age”:“35”},
{“id”:“3”,“firstName”:“Suz”,“lastName”:“Ibra”,“role”:“Developer”,“age”:“23”},
{“id”:“4”,“firstName”:“Alia”,“lastName”:“Arnold”,“role”:“UX Designer”,“age”:“28”},
{“id”:“5”,“firstName”:“Jack”,“lastName”:“Jones”,“role”:“Programmer”,“age”:“37”}
]
myFunction(){
var userId=$(“#myselect”).val();
对于(变量i=0;i
这似乎是一种非常先进的方法,我对编程非常陌生。有没有更简单的方法?@SuzdarIbrahim这应该不会太复杂,请分享你对这段代码的困惑。我从未使用过eventListeners,我不知道它是什么does@SuzdarIbrahim那样的话现在是开始@SuzdarIbrahim的好时机。我很惊讶,在您研究您的问题的解决方案时,您没有遇到addEventListener
…我非常困惑,您说如果我从选项列表中选择JACK,我希望我的代码从JSON文件中为我提供他的信息。它当前提供给我的是选项值,而不是我的标记中的信息
——我看不到任何代码当前在进行选择时检索任何信息。代码在哪里?为什么您希望
标记成为您选项的一部分?它位于select的外部。我迷路了。@Fran基本上我有一个选择列表。它给出了JSON文件中的名称。我想让我的javascript将关于所选人员的所有信息打印到我的p标记中► - 从JSON按Id获取对象►
var data = [
{ "id":"1","firstName":"John", "lastName":"Doe","role":"engineer","age":"25" },
{ "id":"2","firstName":"Jax", "lastName":"Ali","role":"Software engineer","age":"35" },
{ "id":"3","firstName":"Suz", "lastName":"Ibra","role":"Developer","age":"23"},
{ "id":"4","firstName":"Alia", "lastName":"Arnold","role":"UX Designer","age":"28"},
{ "id":"5","firstName":"Jack", "lastName":"Jones","role":"Programmer","age":"37"}
]
myFunction(){
var userId = $( "#myselect" ).val();
for(var i = 0 ; i < data.length;i++){
if(userID == data[i].id){
alert(data[i])
}
}
}