다음 JavaScript 코드가 있습니다. Firefox 브라우저가 table.cells를 인식하지 못합니까?
var myCellCollection = document.getElementById('myTbl').cells;
이 IE에서 잘 작동하고 테이블 셀의 컬렉션을 반환
. 그러나 Firefox에서 같은 줄은 "undefined"를 반환합니다. IE 9와 Firefox 12를 사용하고 있습니다.다음 JavaScript 코드가 있습니다. Firefox 브라우저가 table.cells를 인식하지 못합니까?
var myCellCollection = document.getElementById('myTbl').cells;
이 IE에서 잘 작동하고 테이블 셀의 컬렉션을 반환
. 그러나 Firefox에서 같은 줄은 "undefined"를 반환합니다. IE 9와 Firefox 12를 사용하고 있습니다.document.getElementById("myTbl").getElementsByTagName('td')
을 사용해야합니다.
오래된 인터넷 익스플로러 앱을 포팅하는 중에 오늘날이 문제에 빠져 들었습니다.
경고 :
container.getElementsByTagName('tagname')
반환 쿼리 tagname
일치 container
내부 ALL 요소가.
따라서 table.getElementsByTagName('td')
은 모두 td
의 을 포함하여 중첩 테이블을 포함합니다.
그러나 table.cells
은 구현하지 않습니다.
또한 분명히 th
과 일치하지 않습니다. 그래서 그 세포가 선택적으로 TD의 ...
이 table.cells
의 예상 기능을 심은하려면이 (th
및 td
DOM 모두 를 반환하는 순서 상대를 해결하는 방법의 '문제'로 이어지는 반환 모음에없는 'IF-다른'같은 크기 정확히 팩, 아직 위의 GZip으로 압축이 작은 의해 또는
function tableCells(t){
if(t.cells) return t.cells; // use internal routine when supported
for(var a=[], r=t.rows, y=0, c, x; t=r[y++];){
for(c=t.cells, x=0; t=c[x++]; a.push(t));
}
return a;
}
, '하나의 복귀'를 사용 : - 오더), 나는 다음과 같은 간단한 기능을 썼다. PS : 나는 table.rows[X].cells
을 -ting concat
을 시도했지만
사용 예 (난 그렇게 어쨌든 일을 안심하지 않을 있지만) 그 작동하지 않았다 : (그것은 배열을 반환합니다
var identifier = tableCells(/*reference to table (or thead/tbody/tfoot) here*/);
을하지 라이브 콜렉션) table.cells
의 결과와 유사합니다.
희망이 도움이 될 누군가
감사합니다. 그것은 그것을하는 더 좋은 방법 인 것처럼 보입니다. W3C 레퍼런스는 Firefox가이 [link] (w3schools.com/jsref/coll_table_cells.asp)를 지원함을 명시하고 있습니다. 또한, tableObject.cells 시도 Firefox에서이 예제의 경우 작동합니다 [링크] (http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_table_cells) – Horizon
"W3C 참조"아니에요. 그것은 w3schools입니다. 이것은 종종 잘못되었으며이 경우 분명히 잘못되었습니다. 귀하의 예제는 실제로 모든 브라우저에서 지원되는 _row_ 테이블의 .cells를보고 있습니다. –
@BorisZbarsky : 네, w3schools입니다. 죄송합니다 잘못된 표기법 거기에. 하지만 내가 말한 것은 _alert_를 alert (document.getElementById ("myTable"). 셀)로 변경하여 예제를 시도하는 것입니다. – Horizon