0
안녕하세요! 이 코드는 테이블을 표시하고 작동합니다. 테이블과 그 내용을 표시 할 수 있습니다. 여기 코드는 다음과 같습니다JQuery가 DOM을 사용하여 생성 된 요소에 액세스 할 수 없습니다.
if(xhr.readyState == 4 && xhr.status == 200) {
var data = JSON.parse(xhr.responseText);
var x = 0;
var table = document.getElementById("tblData");
for(x=0; x<data.length; x++) {
dataInstance = data[x].split('*');
var row = document.createElement("tr");
var td1 = document.createElement("td");
var td2 = document.createElement("td");
var td3 = document.createElement("td");
var td4 = document.createElement("td");
var td5 = document.createElement("td");
var td6 = document.createElement("td");
var td7 = document.createElement("td");;
var cb = document.createElement('input');
cb.setAttribute("type", "checkbox");
var tn1 = document.createTextNode(dataInstance[1]);
var tn2 = document.createTextNode(dataInstance[2]);
var tn3 = document.createTextNode(dataInstance[3]);
var tn4 = document.createTextNode(dataInstance[4]);
var tn5 = document.createTextNode(dataInstance[5]);
var tn6 = document.createTextNode(dataInstance[6]);
td1.appendChild(cb);
td2.appendChild(tn1);
td3.appendChild(tn2);
td4.appendChild(tn3);
td5.appendChild(tn4);
td6.appendChild(tn5);
td7.appendChild(tn6);
row.appendChild(td1);
row.appendChild(td2);
row.appendChild(td3);
row.appendChild(td4);
row.appendChild(td5);
row.appendChild(td6);
row.appendChild(td7);
table.appendChild(row);
}
}
그러나이 후, 내가 jQuery를 사용하여 내 테이블에 번갈아 몇 가지 색상을 넣어하려고 할 때, 그것은 DOM을 사용하여 생성 된 행을 찾을 수 없습니다. 내 HTML 코드에있는 테이블의 표 머리글 만 색으로 채 웁니다. JQuery 코드입니다.
$("#tblData tr:even").css("background-color", "pink");
$("#tblData tr:odd").css("background-color", "yellow");
도와 주시겠습니까? 미리 감사드립니다. 어떤 도움을 주셔서 감사합니다!
왜 [CSS] (http://quirksmode.org/css/selectors/nthchild.html)를 사용하지 않으시겠습니까? – Andreas
나는 그것을 고려했다. 그러나 나는 또한 이런 종류의 다른 코드를 필요로한다. (또한 배경색 : 노란색) 해결책. 어쨌든, 당신의 제안에 감사드립니다. – Jjjjjjjjjj
이 jQuery 코드는 언제 실행됩니까? AJAX 요청이 완료되면 행을 추가하는 코드가 추가 된 것처럼 보입니다. 그것은 비동기 적으로 발생합니다. 해당 코드가 완료된 후 jQuery 코드가 실행 중인지 확인해야합니다. – ADyson