options.remove를 대채할수 있나요?

국내에 웹 사이트들이 웹 표준을 지키고 OS나 브라우저와 관계 없이 접근성을 향상 시키기 위한 사이트 버그 신고 및 문제 해결을 위한 게시판입니다.
Post Reply
초보

options.remove를 대채할수 있나요?

Post by 초보 »

selectBox 의 options.remove(index)

함수를 대체할수 있는 표준 함수가 있나요?

selectbox를 초기화 하고 싶어서 그렇습니다.
loveisfunny
Posts: 20
Joined: 2005 08 27 02:53 42
Location: 군대;
Contact:

간단히..

Post by loveisfunny »

<select id='selectBox'></select>
--라면...

var select = document.getElementById('selectBox');
select.innerHTML='';

해주면 모두 지워지죠^^
대세는 PHP와 FF 였으면.. 좋겠다.
k1

부족하지만.. ^^;;

Post by k1 »

저도 아직 많이 부족하지만..
제가 사용하는 걸 올려봅니다.. ^^;
:oops:

옵션 추가하는 거랑 제거하는 함수입니다..
사용법은.. 보시면 아실 듯..

Code: Select all

function AddOption(sel, val, txt) {
	var opt = sel.form.ownerDocument.createElement("option");

	opt.setAttribute("value", val);

	var t = sel.form.ownerDocument.createTextNode(txt);

	opt.appendChild(t);

	sel.appendChild(opt);
}

function DelOption(sel, idx) {
	var opts;

	if (idx<0 || idx>(sel.options.length-1))
		return;

	opts = sel.getElementsByTagName("option");
	sel.removeChild(opts[idx]);
}
도움이 되시길 바랍니다..
k1

DelOption 함수 약간 수정이요 ^^;;

Post by k1 »

Code: Select all

function DelOption(sel, idx) {
	var opts = sel.getElementsByTagName("option");

	if (idx<0 || idx>(opts.length-1))
		return;

	sel.removeChild(opts[idx]);
}
:oops:
초보

답변 감사합니다.

Post by 초보 »

답변 정말 감사합니다..
박민권
해커
해커
Posts: 724
Joined: 2005 01 31 22:33 55
Location: 대한민국
Contact:

Post by 박민권 »

dom을 신경쓰지 않고 제거한다면 innerHTML을 사용해도 되지만
정확하게는 k1님이 올려주신 방법이 맞습니다.
자웅

[브라우저호환문제?] 부모창의 select에

Post by 자웅 »

궁금해서 질문을 드립니다..

부모창의 select값에 option을 추가시 파이어폭스에서는 되는데 IE6에서는 창이 그냥 꺼져 버리더라구요..

Code: Select all

target= window.opener.document.getElementById('SubjectCode');
target.options[target.length]=new Option(currentTitle,currentCode);
위와 같은 코드로 부모의 엘리먼트를 가져와서 자식 창에서 옵션을 추가 하는 코드입니다. 파폭에서는 수행이 되나, IE6에서는 새로 만든 option을 부모창의 그것에 추가하는 순간 창이 꺼져 버립니다...(내용익 길거나 한건아니고 text가 한글이고 value 가 숫자입니다..)


그래서 아래와 같은 수를 써봤는데(createElement사용 및 IE식 엘리먼트 찾기..) 이것역시 파폭에서는 수행이되나 IE6에서는 수행이 안됩니다..

Code: Select all

  /*
  //target=window.opener.document.DescriptiveMetadata.SubjectCode;
    
    newOption = document.createElement("OPTION");
    newOption.value=currentCode;
    newOption.text=currentTitle;
        target.options.add(newOption);//[target.length]=opt;
 //  alert(target.id);
 */

이를 해결할수 있는 크로스한 자바스크립코드를 아시는 분들이 있으시면 조언을 바랄께요...

흐..
...

위에 함수를 참고해 보세요..

Post by ... »

Code: Select all

function AddOption(sel, val, txt) { 
   var opt = sel.form.ownerDocument.createElement("option"); 

   opt.setAttribute("value", val); 

   var t = sel.form.ownerDocument.createTextNode(txt); 

   opt.appendChild(t); 

   sel.appendChild(opt); 
}

var opener_sel=opener.document.getElementById("SubjectCode");

AddOption(opener_sel, "Value","Text");
위에 있는 함수를 참고해 보세요..
Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests