2010-05-14 4 views
2

자바 스크립트를 사용하여 드롭 다운 메뉴에 대한 옵션 요소를 동적으로 만들고 있는데, 클래스를 추가하여 CSS로 스타일을 지정할 수있는 방법을 알고 싶습니다.동적으로 DOM 객체를 만들고 클래스를 제공합니다.

for (var i=0;i<portfolio.length-1;i++) { 
    portfolioSelect.options[portfolioSelect.options.length] = 
     new Option(portfolio[i]); 
} 

포트폴리오는 외부 소스에 의해 채워 배열입니다 :

나는 다음과 같은 코드가 있습니다. 옵션을 삽입

HTML :

<select id="portfolio" name="portfolio"> 
    <option selected="selected" value="Select One">Select One</option> 
</select> 
+0

FWIW, 제목은 "동적으로 ** DOM ** 객체 및 클래스 지정":-)이어야합니다. –

+0

실제로 수정되었습니다! – Choy

답변

5

당신은 className 속성에 클래스 이름 (들)을 할당 할 수 있습니다, 예컨대는 :

var opt; 
for (var i=0;i<portfolio.length-1;i++) { 
    opt = new Option(portfolio[i]); 
    opt.className = "your_class_name_here"; 
    portfolioSelect.options[portfolioSelect.options.length] = opt; 
} 

이는 DOM 요소의 사실이다. className은 요소에 class 속성을 반영합니다 (class은 자바 스크립트에서 예약어이므로 해당 이름이 지정되었습니다). 값은 속성과 정확히 동일합니다. 즉, 여러 클래스를 공백으로 구분할 수 있습니다.

1
for (i=0;i<portfolio.length-1;i++) { 
    var option = new Option(portfolio[i]); 
    option.setAttribute('class', 'your-class-name'); 
    portfolioSelect.options[portfolioSelect.options.length] = option; 
} 
+0

IE에서 작동하지 않습니다. IE의'setAttribute'는이 점에서 약간 깨져서 "class"가 아니라 "className"을 필요로합니다. 그리고 물론, 다른 브라우저는 "className"이 아니라 "class"를 기대합니다. 반사 된 속성을 사용하는 반면 (내 대답 참조) 신뢰할 수있는 크로스 브라우저입니다. –

관련 문제