0
위의 코드가 optgroup의 끝에 도달하면 중지됩니다 ... 마지막 옵션 요소를 읽지 않습니다 ... 무슨 일이 일어나고 있습니까? 감사합니다재귀 실수
console.log ('entering');
이
는 HTML에게 있습니다 선택 --- 옵션 OPTGROUP --- 옵션 옵션 옵션var t,v = ''; el = $(selector).get(0); if(el.hasChildNodes()){ var li = '<ul>' ; for(var i = 0; i < el.childNodes.length; i++){ console.log('-----'+i+' '+el.childNodes[i].nodeName); //console.log(el.childNodes[i].nodeName + ' -> '+ $(el.childNodes[i]).text()); if(el.childNodes[i].nodeName == 'OPTION'){ t = $(el.childNodes[i]).text(); v = $(el.childNodes[i]).val(); li = li + "<li value='"+v+"' >"+t+"</li>"; }else if(el.childNodes[i].nodeName == 'OPTGROUP'){ if(el.childNodes[i].hasChildNodes()){ var c = MacOsxSelectOptionToLi(el.childNodes[i]); /*var c = '<ul>'; for(var j = 0; j < el.childNodes[i].childNodes.length; j++){ if(el.childNodes[i].childNodes[j].nodeName == 'OPTION'){ t = $(el.childNodes[i].childNodes[j]).text(); v = $(el.childNodes[i].childNodes[j]).val(); c = c + "<li value='"+v+"' >"+t+"</li>"; } } c = c+ '</ul>'; */ }else{ var c = ''; } var t = $(el.childNodes[i]).attr('label'); li = li + "<li class='optiongroup' >"+t+c+"</li>"; } } return li + '</ul>'; }
HTML 및 스크립트가 http://jsfiddle.net/에 게시되면 도움이됩니다. –