내 json 개체의 키와 값에서 선택 드롭 다운을 만들려고하지만 키 값 쌍을 함께 가져올 수는 없지만 키 이름 자체를 얻는 데만 성공했습니다. 아래는 내가 지금까지 완료 할 수 있었던 것입니다.
다음은 선택 옵션이 표시되는 방식입니다.
<select id="optSelect">
<option value="key1">value1</option> <!-- should come from name1 -->
<option value="key1">value2</option> <!-- should come from name2 -->
</select>
각 키의 값을 유지하기 위해 다른 배열을 만든 다음 선택 옵션을 작성할 때 그에 따라 참조해야합니까? 아니면 다른 방법이나 방법이 있습니까?
var someObject = {
"Name1": {
"key1": "value1",
},
"Name2": {
"key1": "value2",
}
}
var objArray = [];
for(var i in someObject){
var key = someObject[i];
for(var x in key1){
var nextKey = x;
var nextVal = key1[x];
someObject.push(nextKey);
}
}
var optionSelect = document.getElementById("optSelect"),
selectList = document.createElement("select");
selectList.id = "mySelect";
optionSelect.appendChild(selectList);
for (var i = 0; i < objArray.length; i++) {
var option = document.createElement("option");
option.value = objArray[i]; // need to get key1 in here for each value in someObject
option.text = objArray[i]; // need to get value 1 or 2 etc in here for each value name in someObject
selectList.appendChild(option);
}
for(var x in key1){
, 여기서 key1은 정의되어 있지 않으므로 수정해야합니다. 그런 다음 objArray에 모든 키 값 쌍을 저장해야합니다. 값만 밀어 넣으면 나중에 사용하기가 어려워집니다. 에서 개체를 푸시 할 수 있습니다 objArray
. 또한 selectList를 만든 다음 optionSelect에 추가하는 이유는 다음과 같습니다. optionSelect에 옵션을 직접 추가 할 수 있습니다.
var someObject = {
"Name1": {
"key1": "value1",
},
"Name2": {
"key1": "value2",
}
}
var objArray = [];
for(var i in someObject){
var key1 = someObject[i];
for(var x in key1){
objArray.push({'key' : x, 'val' : key1[x]});
}
}
var optionSelect = document.getElementById("optSelect"),
selectList = document.createElement("select");
selectList.id = "mySelect";
optionSelect.appendChild(selectList);
for (var i = 0; i < objArray.length; i++) {
var option = document.createElement("option");
option.value = objArray[i].key; // need to get key1 in here for each value in someObject
option.text = objArray[i].val; // need to get value 1 or 2 etc in here for each value name in someObject
optionSelect.appendChild(option);
}
<select id="optSelect">
</select>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다