텍스트 세트를 가져 오려고하는데 버튼을 누르면 다른 텍스트 세트로 변경됩니다. 나는 많은 다른 방법을 시도해 왔고 그것이 작동하도록 할 수없는 것처럼 보입니다. 다음은 작동하는 Jsfiddle입니다.'Uncaught TypeError : undefined가 함수가 아닙니다.'다른 코드 행에 계속 표시됩니다.
나는 점점 계속 :
var $rep = $update.textContent.substring(1);
내가 코드 줄을 변경 한 라인에 대한 'catch되지 않은 형식 오류 정의되지 않은 함수 아니다',하지만하여 내 코드의 다른 줄에 같은 오류가 발생합니다 같은 기능.
function createAnswers() {
var i;
for (i = 0; i < 4; i++) {
var $update = $(".answers p")[i];
var $rep = $update.textContent.substring(1);
console.log($rep);
var answerText = document.createTextNode(randomImage.randomAnswers[i]);
if (usedImages.length >= 1) {
$rep.replaceWith(answerText);
}
$update.appendChild(answerText);
}
}
저는 아직 Javascript에서 매우 새롭기 때문에 매우 분명한 것을 놓치고있을 수 있습니다. 건설적인 비판이 도움이 될 것입니다. $ 업데이트가 DOM 노드되기 때문에 당신은 var $update = $(".answers p")[i];
후 jQuery를 기능을 사용할 필요가 없습니다
function createAnswers() {
var i,
$answers = $(".answers p");
for (i = 0; i < 4; i++) {
var $update = $answers[i];
var $rep = $update.textContent.substring(1);
var answerText = document.createTextNode(randomImage.randomAnswers[i]);
if (usedImages.length >= 1) {
$update.textContent = $update.textContent.replace($rep, answerText.textContent);
}
$update.appendChild(answerText);
}
}
: 같은
이는 선택자와 일치하는 요소가 3 개가 없음을 나타냅니다. 또한'$ rep.replaceWith()'는 에러 (문자열 일까?) 인 것 같아 네이티브 메소드와 jQuery 메소드를 무작위로 사용하고 있지만 네이티브 DOM 노드가있는 것처럼 보입니다. – adeneo
'$ rep'는 문자열이고'.replaceWith' 함수는 DOM 노드와 작동합니다. – Cheery