답변
을 jQuery를 사용하지 않고, 기본적인 방법은 DOM 요소에 고유 ID를 연결하는 것입니다() 메소드에서 getElementById를 통해 액세스 할
<p id="second_p_elmt"> [...] </p>
다음 :
<script ...>
var second_p_elmt = document.getElementById('second_p_elmt');
</script>
으로 클래스 상자에 div의 두 번째 p 요소를 얻으려면 다음을 입력하십시오.
var paragraph = null;
var divs = document.findElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
var div = divs[i];
if (div.class == 'box') {
var paragraphs = div.getElementsByTagName('p');
if (paragraphs.length > 1)
paragraph = paragraphs[1];
break;
}
}
문단은 paragraph
변수에 있습니다 (발견되지 않으면 null). 당신이 그런 jQuery으로 도서관이 훨씬 쉽게 할 수 그러나
:
var paragraph = $('div.box p:eq(1)');
jQuery에서는 DOM 노드를 구체적으로 선택해야한다 :'$ ('div.box p : eq (1)') .get (1)'. 그렇지 않으면, 당신은 jQuery 객체를 얻습니다. 그리고 그것은 말 그대로 모든 DOM 인터페이스가 부족합니다. – Boldewyn
실제로 .get (0) 또는 단지 [0]으로 p : eq (1)이 이미 두 번째 단락을 선택했기 때문에. –
<script type="text/javascript">
var boxElem = document.getElementById('box'),
pElems = boxElem.getElementsByTagName('p'),
whatYouWant = pElems[1]; // [1] is the second element in the response from getElementsByTagName
</script>
죄송합니다 - 질문을 잘못 읽었습니다. 이 대답은 "div # box p [1]"에 적용됩니다. – David
당신은 몇 가지 옵션이 있습니다. 위에서 설명한 것처럼 jQuery 나 프로토 타입과 같은 훌륭한 프레임 워크 중 하나를 사용할 수 있습니다. 또는 <p/>
에 ID를 부여하면 document.getElementById()
으로 간단하게 사용할 수 있습니다.
그런 다음 reko_t가 지적했듯이 긴 DOM 통과 코드를 작성해야합니다 (JS 프레임 워크를 다른 곳에서 사용하지 않는 경우이 작업에만 사용하는 것이 바람직 함).
var p = document.querySelectorAll("div.box p");
@Boldewyn :'querySelector'와'querySelectorAll'는 모두 IE8에서 지원됩니다. 사실, IE8은 Firefox 이전 버전이었습니다 (2009 년 6 월 3 일) –
@Andy E : 지적 해 주셔서 감사합니다. 그러나, 당신이 지원 전화 : http://ejohn.org/blog/selectors-api-test-suite-in-ie8/? 그러나, 당신은 요점을 가지고, 나는 대답을 수정합니다. – Boldewyn
- 1. IE에서 JavaScript DOM
- 2. JavaScript : DOM 텍스트 노드
- 3. DOM javascript 내비게이션
- 4. javascript 함수에서 DOM 반환
- 5. Javascript Loading dom²
- 6. javascript DOM 개체 상속
- 7. Javascript, DOM crazyness ...
- 8. JavaScript : DOM 요소에 eventListeners 추적
- 9. html/php 대 DOM/javascript
- 10. JavaScript DOM XSS 주입 확인
- 11. 값으로 복사 Javascript DOM 객체
- 12. Javascript OOP query re DOM
- 13. JavaScript DOM 참조가 유지되지 않음
- 14. HowTo : BeginProcessRequest
- 15. JavaScript DOM dynamc Form from PHP
- 16. HTML DOM Validator - PHP 또는 JavaScript
- 17. HTML DOM Drawing Transaction in Javascript?
- 18. JavaScript, DOM 흐림/포커스, 드롭 다운
- 19. JavaScript DOM : 프레임 사이 요소 전송
- 20. 전체 프레임 워크없이 Javascript DOM 준비
- 21. GeckoFX DOM 요소를 JavaScript 탐색 호출에 전달
- 22. Javascript : "Dangling"DOM 요소에 대한 참조?
- 23. Javascript DOM - tagName이있는 가장 가까운 노드 얻기
- 24. JavaScript 및 XML DOM - 중첩 루프
- 25. OpenFlow :: Howto Stream Images
- 26. svndumpfilter2 + Windows HowTo
- 27. iPhone 특별 배포판 howto?
- 28. Android PendingIntent howto
- 29. HOWTO : 프로세스에 태그 지정
- 30. modalViewController는 콜백을 위임합니다 - HowTo?
내가 당신과 동의 : 가장 최근의 브라우저에서
은 (즉, IE> = 8,> = 3.5 FF는 최근 오페라와 사파리> 3) 당신은 또한이 간단한 조각을 사용할 수 있습니다. 이드를 붙이기가 쉽지 않습니다. 그런 다음 새 단락을 삽입하면 이것이 세 번째 단락이되며 DOM 트래버스는 모두 중단되지 않습니다. –