Oto cały skrypt z wywołania AJAX kierować jedną listę w obrębie strony z wielu list. Żadna z powyższych rzeczy nie działała dla mnie, dopóki nie użyłem atrybutu "id", mimo że moja nazwa atrybutu to "ItemKey". Za pomocą debuggera
Chrome Debug
byłem w stanie zobaczyć, że wybrana opcja miała atrybuty: z mapą do „id” jQuery i wartości.
<html>
<head>
<script type="text/JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<select id="List1"></select>
<select id="List2">
<option id="40000">List item #1</option>
<option id="27888">List item #2</option>
</select>
<div></div>
</body>
<script type="text/JavaScript">
//get a reference to the select element
$select = $('#List1');
//request the JSON data and parse into the select element
$.ajax({
url: 'list.json',
dataType:'JSON',
success:function(data){
//clear the current content of the select
$select.html('');
//iterate over the data and append a select option
$.each(data.List, function(key, val){
$select.append('<option id="' + val.ItemKey + '">' + val.ItemText + '</option>');
})
},
error:function(){
//if there is an error append a 'none available' option
$select.html('<option id="-1">none available</option>');
}
});
$("#List1").change(function() {
var optionSelected = $('#List1 option:selected').attr('id');
$("div").text(optionSelected);
});
</script>
</html>
Oto pliku JSON do tworzenia ...
{
"List":[
{
"Sort":1,
"parentID":0,
"ItemKey":100,
"ItemText":"ListItem-#1"
},
{
"Sort":2,
"parentID":0,
"ItemKey":200,
"ItemText":"ListItem-#2"
},
{
"Sort":3,
"parentID":0,
"ItemKey":300,
"ItemText":"ListItem-#3"
},
{
"Sort":4,
"parentID":0,
"ItemKey":400,
"ItemText":"ListItem-#4"
}
]
}
Nadzieja to pomaga, dziękuję wszystkim za wprowadzenie mnie powyżej tej pory.
Czy ktoś powiedzieć "You Rock !!!" .. Cóż, myślę, że jestem pierwszy! – curiousBoy