2012-10-21 3 views
0

가능한 중복 : 나는 지금 이렇게 될 선택 상자의 어린이의 배열을 얻으려고HTML 선택 상자에서 배열을 반환하려면 어떻게해야합니까?

<select name="select"> 
    <option value='xxx'> xXx </option>  
    <optgroup label="Letters"> 
     <option value='a'> A </option> 
     <option value='b'> B </option> 
     <option value='c'> C </option> 
     <option value='d'> D </option> 
    </optgroup> 
    <option value='zzz'> zZz </option> 
</select> 

:

여기


Storing select options and optgroups in a JavaScipt array 내 HTML의

[{"xxx":"xXx"},{"letters":{"a":"A","b":"B","c":"C","d":"D"}},{"zzz":"zZz"}] 

선택 상자 옵션 및 옵션 그룹에 따라 다릅니다.

+2

나는 거의 어제 대답했다 ... http://stackoverflow.com/questions/12992582/storing-select-options-and-optgroups-in-a-javascipt-array/12992604#12992604 –

+0

고맙습니다. @ 마이클 Berkowski, 나는 당신의 질문에 대한 답변을 사용하는 것 같아 –

답변

2

다음은 요청한 코드입니다.

$(document).ready(function() { 
var mtest = "["; 
var i = 0; 
var j = 0; 

$("select").children().each(function() { 
if (i==0) i+=1; else mtest += ','; 
j = 0; 
if ($(this).children().length ==0) { 
    mtest += '{"' + $(this).attr('value') + '":"' + $.trim($(this).html()) + '"}'; 
} else { 
    mtest += '{"' + $(this).attr('label') + '":{'; 
    $(this).children().each(function() { 
     if (j==0) j+=1; else mtest += ','; 
     mtest += '"' + $(this).attr('value') + '":"' + $.trim($(this).html()) + '"'; 

    }); 
    mtest += '}'; 
} 

;}) 
mtest += ']'; 
document.write(mtest); 

});​ 

여기 http://jsfiddle.net/salih0vicX/WkaNv/을 테스트 할 수 있습니다. 테스트 용으로 추가 HTML을 추가했습니다 ...

질문이나 문제가 있으면 알려주십시오.

+0

@ salih0vicX 고맙습니다, 그것은 나와 함께 잘 작동하고, 또 다른 질문이 내 "중복"감사합니다. –

관련 문제