연습을 하고 있습니다. 테이블 행을 클릭할 때 모달 팝업 창을 만들고 클릭한 상태에 대한 관련 정보를 불러오려고 합니다.
JSON은 다음을 반환합니다.
"data": [
{
"ID State": "04000US01",
"State": "Alabama",
"ID Year": 2019,
"Year": "2019",
"Population": 4903185,
"Slug State": "alabama"
}
]
그리고 호출에서 이를 사용하는 다른 API에 사용할 Slug State 라인을 가져오려고 합니다.
function BuildStatesByPopulation(data) {
if (stateTable != null) {
for (var i= 0; i < data.length; i++) {
let addRow= `<tr id="stateData" class='clickable-row' onClick=SelectStateOpenModal(${data[i]["Slug State"]})> <td>${data[i].State}</td> <td>${data[i].Population}</td> </tr>`
stateTable.innerHTML += addRow;
//console.log(data[i]["Slug State"]);
}
}
}
function SelectStateOpenModal(stateName) {
let setState= String(stateName);
let stateDisplay;
let stateJson
console.log(stateName);
$.ajax({
type: 'GET',
url: stateInformation+setState,
success: function (response) {
stateJson= response.data;
stateDisplay= document.getElementById('modalView');
console.log(stateJson);
}
});
}
콘솔에서 테이블의 행을 클릭하면 다음이 반환됩니다.
index2.html:71 잡히지 않은 ReferenceError: nebraska는 HTMLTableRowElement.onclick에 정의되어 있지 않습니다(index2.html:71:87).
문자열을 전달하기 위해 onClick=SelectStateOpenModal('${data[i]["Slug State"]}') 에서 작은 따옴표를 놓친 것 같습니다... 그것 없이는 변수로 간주됩니다. [email protected]는 정의되지 않습니다. ;)
Louys Patrice Bessette2022-02-01 10:33:12@LouysPatriceBessette 이름에 아포스트로피가 포함된 상태에서는 중단됩니다. 그런 code를 작성하지 마십시오.
Bergi2022-02-01 10:33:12테이블 행에 일반 'id'를 지정하지 마십시오. 요소 ID는 전체 DOM(페이지)에 대해 고유해야 합니다. 'stateData' ID를 '
onclick 속성이 무서운 이유 중 하나입니다. 대신 addEventListener를 사용하십시오.
Quentin2022-02-01 10:33:12