HTML 코드 (항상 0을 반환)
var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);
결과 : 첫 번째 #table > tr
0 얻을 왜
0,1
?
당신은 여기에서 라이브 데모를 볼 수 있습니다
HTML 코드 (항상 0을 반환)
var l1 = $('#table > tr').length;
var l2 = $('#table tr').length;
alert(l1+','+l2);
결과 : 첫 번째 #table > tr
0 얻을 왜
0,1
?
당신은 여기에서 라이브 데모를 볼 수 있습니다
<table>
의 직접적인 아이 만 <thead>
, <tbody>
, 또는 <tfoot>
수 있기 때문에 http://jsfiddle.net/Freewind/PmsFQ/ (또는 <colgroup>
또는 <caption>
, 그러나 그 행을 포함하지 않음).
브라우저의 DOM은 암시 적으로에 누락 된 <tr>
을 줄 바꿈합니다. (이렇게하지 않는 브라우저의 경우 jQuery가 대신 가짜 임)
$('#table > tbody > tr')
을 작성해야합니다.
두 번째 문장은 HTML (HTML5는 물론)에서는 true이지만 XHTML에서는 그렇지 않습니다. [이] (http://stackoverflow.com/a/5568877/106224) 두 [답변] (http://stackoverflow.com/a/7491956/106224)를 참조하십시오. – BoltClock
브라우저가 <table>
과 <tr>
사이에 자동으로 <tbody>
요소를 삽입하여 더 이상 행이 테이블의 직접 하위가 아니기 때문입니다.
* 다른 * 질문으로 가서 보증이 끝나면 닫으십시오 (이 질문은 더 잘 작성되었습니다). –
@pst : 완료. 마지막 설명이 "이전 질문과 동일합니다"라는 것을 알면 항상 불안감을 느끼지만,이 경우에는 괜찮다고 생각합니다. – BoltClock