Page 1 of 1
getElementById 로 배열 선택
Posted: 2005 12 29 18:44 04
by 피핀
<input id="test">
<input id="test">
document.getElementById("test") 이렇게 하면 첫번째만 선택되던데..
이렇게 아이디값이 같은 여러개를 웹표준에 맞게 어떻게 선택하죠?
document.all은 ie에서만 되는걸로 알고 있습니다.
Posted: 2005 12 29 19:01 53
by 빛알갱이
ID는 unique해야 합니다. 그렇지 않으면 ID가 아니겠지요. (하나의 ID를 중복해서 쓰면 HTML 표준 검사를 통과할 수 없습니다. ) 주민 등록 번호를 공유할 수 없듯이요. 스타일 변경을 하시고자 한다면, class를 같이 주시고, 아래 주소에서 설명하는 함수들을 써 보세요. getStyleByClass나 setStyleByClass를 써 보세요.
http://developer.apple.com/internet/web ... tyles.html
뭐 저 경우에는...
Posted: 2005 12 30 00:43 16
by kyu419
뭐 저 경우에는
document.getElementsByTagName("input")[0] 이나
첨자를 1로 바꾸면 둘 중 하나가 선택되겠네요.
document.getElementsByTagName("input") 하시면
태그 이름 'input'을 가진 Element들이 반환됩니다.
첨자로 선택해 주시면 되겠죠.
Posted: 2005 12 30 09:11 46
by 피핀
아.. 아이디는 유니크해야되는군요..
답변 감사합니다.
Posted: 2006 01 04 19:59 41
by 송효진
id 대신 name 으로 하면 웹표준에 부합되는거겠죠?
<input name="test[]" type="text" />
<input name="test[]" type="text" />
<input name="test[]" type="text" />
<input name="test[]" type="text" />
<input name="test[]" type="text" />
<script>
var test = document.getElementsByName("test[]");
test[2].value = "까꿍!";
</script>
name도 XHTML 1.0이상에서는...
Posted: 2006 07 26 23:42 36
by Reidin
name도 XHTML 1.0이상에서는 표준과 멀어집니다. XHTML 1.0 Static에서는 비표준이 되어버리죠.
저도 항상 이게 궁금했는데요,
Posted: 2006 07 27 09:35 29
by kwon37xi
저도 항상 이문제가 궁금했습니다.
ID가 Unique 해야 한다는 것은 프로그램짤때 상당한 애로 사항이 될거 같습니다.
JSP의 경우 동일한 name을 가진 input 요청을 한개의 배열로 생성해줍니다.
그런데 name을 사용할 수 없고, id만 써야하고 id는 unique해야 한다는 조건이 걸리게 되면 더이상 배열을 사용할 수 없게 되거든요..
이제 배열이 필요하면 어떻게 해야 하는걸까요?
Posted: 2006 07 27 10:15 57
by hyeonseok
input은 name이 허용 됩니다.
Posted: 2006 07 27 10:19 44
by nowhere0
selector는 id, name, class 가 될 수 있습니다.
이 중 name은 form control (input, select 등)에서는 사용해도 됩니다.
form control 이외에서 name은 depricated되었습니다.
현재까지의 해결책은,
getElementsByClass() - 구현되어있지 않으므로 만들어서 사용하시면 됩니다. - 또는 getElementsByAttribute() - 역시 미구현이므로 만들어두고 사용하세요. - 등을 쓰는 것입니다. prototype.js 같은 라이브러리를 쓰신다면 이름은 다르지만 같은 기능이 구현되어 있는 경우가 있으니 레퍼런스를 참고하시구요....
class나 attribute를 selector로 사용하는 것은 약간(?) 편법스럽긴 합니다만, XHTML 2.0에서는 name을 대신할 새로운 selector가 등장하니 좀 기다려야 하겠습니다.