2010-12-27 6 views
0

나는이자바 스크립트 도우미 메서드

var selectOptionValues = [" ","NA","Yes","No"]; 
var selectedValue = "No"; 


function CreateSelectList(selectId,selectOptionValues,selectedValue){ 
// build the selectlist 
// if the selectedValue is not null make this value selected 
// return select tag 
} 

내가 selectedOption = selectTag[selectedValue] 같은 것을하려고 노력하고있다처럼 보이는 내 JS 툴킷의 도우미 메서드를 만들려고하고 다음 selecteOption.selected = true하지만 작동 안함.

+2

그냥 지정하는 대신 DOM을 사용하여 빌드하지 않아도됩니까? –

+0

@Gunner : div와 같은 DOM 요소를 만들 때 이와 같은 메서드를 사용하고 자식으로 추가합니다. – Perpetualcoder

답변

3

DOM 노드 및 작동하지 않는 부분을 생성하여 옵션을 생성한다고 가정 할 때, 아니오 옵션의 선택 상태입니다. ("선택", "선택") selectOption.setAttribute 시도 - 약 ...

var selectOptionValues = [" ","NA","Yes","No"], selectedValue = "No"; 

function CreateSelectList(selectId,selectOptionValues,selectedValue){ 
    var selectList = document.createElement("select"), selectOption; 
    for (var i=0, totalOptions = selectOptionValues.length; i < totalOptions ; i++) { 
     selectOption = document.createElement("option"); 
     selectOption.value = selectOptionValues[i]; 
     selectOption.innerText = selectOptionValues[i]; 
     if (selectOptionValues[i] == selectedValue) { 
      selectOption.setAttribute("selected","selected"); 
     } 
     selectList.appendChild(selectOption); 
    }; 
    return selectList; 
} 
+0

"selectOption.setAttribute", JQuery에서 온 것입니까? –

+0

아니요 - https://developer.mozilla.org/en/DOM/element.setAttribute jQuery에 해당하는 것은 아마 메모리에서 가져온 attr() 메소드 일 것입니다. –

+0

원래 질문의 요점 외에, 하위 질문, selectOption.innerText 내 예제에서는 selectOption.nodeValue해야합니까? –

1

딘 버지 제안 방법뿐만 아니라, 당신은 또한 선택 개체의 selectedIndex 속성으로 기본값을 설정할 수 있습니다. selectedValue를 원하는 값의 인덱스로 만들면 매우 간단 해집니다 :

//selectedValue==3; 
yourPopulatedSelect.selectedIndex=selectedValue; 
//"No" will be selected 
관련 문제