2011-04-09 7 views
0

안녕하세요! 나는 의심 스럽다. 이드를 통해 요소를 가져와야합니다. 나는 document.getElementById() 또는 jquery selector를 사용할 수 있지만 jquery 나 다른 라이브러리를 사용하고 싶지는 않다는 것을 알고있다. 아이디어는 js와 라이브러리가없는 컴포넌트를 만드는 것입니다. 그래서id로 요소 가져 오기

<div id="objprop"> 

    <div id="prop-header"><span>Mi Ventana</span></div> 
    <div id="prop_width" style="clear: both;"> 
     <label style="margin-left: 7px; margin-bottom: 7px; float: left;">Width</label> 
     <input type="text" style="float: right; margin-right: 7px; width: 70px;" id="width"> 
    </div> 
    <div id="prop_height" style="clear: both;"> 
     <label style="margin-left: 7px; margin-bottom: 7px; float: left;">Height</label> 
     <input type="text" style="float: right; margin-right: 7px; width: 70px;" id="height"> 
    </div> 
    <div id="prop_left" style="clear: both;"> 
     <label style="margin-left: 7px; margin-bottom: 7px; float: left;">Left</label> 
     <input type="text" style="float: right; margin-right: 7px; width: 70px;" id="left"> 
    </div> 
    <div id="prop_top" style="clear: both;"> 
     <label style="margin-left: 7px; margin-bottom: 7px; float: left;">Top</label> 
     <input type="text" style="float: right; margin-right: 7px; width: 70px;" id="top"> 
    </div> 
</div> 

, 난에 입력 폭 ID 값을 설정하려면 supose하자

나는이 상황, 코드에 의해 생성 된 코드를 얻었다. document.getElementById는 html에있는 동일한 id를 가진 다른 요소 일 수 있으므로 사용에 대해서는 확실하지 않습니다. 내 의심

+0

이것은 질문입니다. 뭘 물어 보는 거냐? 동일한 ID를 가진 DOM에 둘 이상의 요소가있을 수 있는지 여부 – Zach

+0

@Zach 페이지 코더가 "id"값이 고유해야한다는 것을 모르는 경우 :-) – Pointy

+0

감사합니다. 그럼 내 실수;) –

답변

2

specifications 따른 소자의 id 속성은 문서에서 고유해야한다. 따라서 문서가 스펙을 준수하는 한 getElementById()를 사용하여 문제가 없어야합니다.

1

"ID"의 값입니다

아니라 페이지 전체에 독특한해야합니다 속성. "getElementById()"가 여러 요소에서 사용되는 것과 동일한 "id"값을 처리해야하는 것은 문제가 될 것입니다. 그래서 절대 그렇게해서는 안됩니다. 그것이 "id"라고 불리는 이유입니다. — 요소에 대해 식별자입니다.

3

HTML specification에는 id을 한 번만 사용해야한다고 나와 있습니다. 문서 전체에서 고유해야합니다. 유효한 문서를 다루고 있다면 편안함을 느껴야합니다. document.getElementById()

0

html에 id가 같은 다른 요소가있을 수 있으므로 document.getElementById를 사용하는 것이 확실하지 않습니다.

고유해야합니다.

http://validator.w3.org/

0

감사합니다.

내 문제를 해결하려면. 나는 다음과 같이했다 :

나는 동적으로 요소를 만들었으므로 포스트 픽스 을 추가했다 : this.postfix = new Date(). getTime();

그래서 'width _'+ postfix라는 이름의 'width'ID를 추가하고 입력해야합니다. 그래서 안전한 방법으로 사용할 수 있습니다. document.getElementById;

감사합니다.