Ich möchte "Jahre" in yearObject
des Typs Object
sortieren, so dass das Menü mit 2016 statt 2013 beginnt. Bitte helfen. Example Code wird hier bereitgestellt.Wie Werte in meinem Json-Objekt zu sortieren
Mein HTML:
<form name="myform" id="myForm">
<select name="optone" id="yearSel" size="1">
<option value="" selected="selected">Select Year</option>
</select>
<br>
<br>
<select name="opttwo" id="stateSel" size="1">
<option value="" selected="selected">Please select year first</option>
</select>
<br>
<br>
<select name="optthree" id="citySel" size="1" citySel.onchange = function();>
<option value="" selected="selected">Please select state first</option>
</select>
</form>
Mein JS:
var yearObject = {
"2016": {
"California": ["Los Angeles", "San Francisco"],
"Florida": ["Orlando", "Miami"],
"New York": ["Manhattan","Brooklyn"]
},
"2015": {
"California": ["Los Angeles", "San Francisco"],
"Florida": ["Orlando", "Miami"],
"New York": ["Manhattan","Brooklyn"]
},
"2014": {
"California": ["Los Angeles", "San Francisco"],
"Florida": ["Orlando", "Miami"],
"New York": ["Manhattan","Brooklyn"]
},
"2013": {
"California": ["Los Angeles", "San Francisco"],
"Florida": ["Orlando", "Miami"],
"New York": ["Manhattan","Brooklyn"]
}
}
window.onload = function() {
var yearSel = document.getElementById("yearSel"),
stateSel = document.getElementById("stateSel"),
citySel = document.getElementById("citySel");
for (var year in yearObject) {
yearSel.options[yearSel.options.length] = new Option(year, year);
}
yearSel.onchange = function() {
stateSel.length = 1; // remove all options bar first
citySel.length = 1; // remove all options bar first
if (this.selectedIndex < 1) {
stateSel.options[0].text = "Please select Year first"
citySel.options[0].text = "Please select state first"
return; // done
}
stateSel.options[0].text = "Please select state"
for (var state in yearObject[this.value]) {
stateSel.options[stateSel.options.length] = new Option(state, state);
}
if (stateSel.options.length==2) {
stateSel.selectedIndex=1;
stateSel.onchange();
}
}
yearSel.onchange(); // reset in case page is reloaded
stateSel.onchange = function() {
citySel.length = 1; // remove all options bar first
if (this.selectedIndex < 1) {
citySel.options[0].text = "Please select state first"
return; // done
}
citySel.options[0].text = "Please select city"
var cities = yearObject[yearSel.value][this.value];
for (var i = 0; i < cities.length; i++) {
citySel.options[citySel.options.length] = new Option(cities[i], cities[i]);
}
if (citySel.options.length==2) {
citySel.selectedIndex=1;
citySel.onchange();
}
}
citySel.onchange = function(){
switch(citySel.value){
case "Los Angeles":
if(yearSel.value == "2016"){
location.href="http://google.com";
}else if(yearSel.value == "2015","2014"){
location.href= "http://facebook.com";
}
break;
case "Miami":
if(yearSel.value == "2016","2015"){
location.href="http://google.com";
}else if(yearSel.value == "2014","2013"){
location.href= "http://facebook.com";
}
break;
}
}
}
bitte Ihr Beispiel und den Code, den Sie versucht, hinzuzufügen. –
http: jsfiddle.net/bond1126/r1nvsta9 –
poste den Code HIER, nicht nur einen Link dazu. und damit meine ich, deine Frage zu bearbeiten. Entpacke keinen Code in einen Kommentar. –