매개 변수에서 테이블과 같은 것을 만들고 컨텐츠 편집 가능한 div에 삽입하려면이 경우에 가장 적합한 방법이 있습니까?createElement v html 사용자 정의 html 문자열 빌더
원래 행 및 열 번호와 같은 매개 변수를 전달하여 var html 문자열을 작성한 다음 execCommand ('insertHTMl', null html)를 통해 문서에 삽입했습니다. ;
모든 클래스 또는 ID의 내부 html은 하드 코딩 될 수 있으므로이 방법이 마음에 들었습니다.
createElement 명령을 실행 한 다음 작동합니다 (내가 잘못하지 않는 한) 추가하려는 각 특성이나 스타일에 대해 appendChild 행의 로그를 추가해야합니다.
또한 테이블 셀에 내부 html을 추가하는 것이 까다로웠지만 각 테이블 셀은 내부에 스팬 노드가 만들어 지길 원했지만 내 루프는 마지막 셀에만 생성했습니다. 누구든지 내가 잘못하고있는 것을 볼 수 있습니까? 이리?
mytable = document.createElement("table");
mytablebody = document.createElement("tbody");
myspan = document.createElement("span");
newContent = document.createTextNode("Test text");
myspan.appendChild(newContent);
myspan.style.display = "block";
myspan.style.width = "100%";
for (var r = 0; r < rows; r++) {
mycurrent_row = document.createElement("tr");
for (var c = 0; c < columns; c++) {
mycurrent_cell = document.createElement("td");
mycurrent_cell.appendChild(myspan);
mycurrent_row.appendChild(mycurrent_cell);
}
mytablebody.appendChild(mycurrent_row);
}
그래서 어쨌든 학습을 위해이 방법을 사용해야하거나 허용/단지 안전 몇 가지 기본적인 루프에서 HTML의 문자열을 구축하는 특별한 이유가 있습니까? 누군가가 내가 잘못 여기서 뭐하는 거지 볼 수 있습니다 - 내가 그 안에 스팬 노드를 가지고 만든 각 테이블 셀을 원하지만 내 루프가 마지막 셀을 만든 사전
텍스트에 사용 된 데이터 원본에 따라 다릅니다. 연결된 문자열을 사용하면 XSS 삽입에 대한 가능성이 열리는 반면 텍스트는 스크립트 태그가 포함될 수있는 HTML을 제거하므로 노드에 삽입하면 – charlietfl
감사합니다. 왜 위의 코드에서 스팬이 테이블의 마지막 셀에만 만들어 졌는지 알 수 있습니까? – JQuery