이슈 내부의 의견은 필요에 따라 목록을 편집하는 역할을 마지막 함수에서오고있다목록 항목을 만들고 채우고 편집합니다. 호기심 오류가 발생합니다. 코드와
코드 :
// function to edit the desired list item with user input text
function editAList(){
var list = document.getElementsByTagName("li");
var uList = document.getElementById("List");
var listLength = list.length; // not needed at the moment
var listNum = parseInt(prompt("Enter the list number you would like to edit. Any number from 1 to "+listLength))-1;
var edit = document.createTextNode(prompt("Enter the new list text"));
uList.replaceChild(edit, uList.childNodes[listNum]);
}
문제 1 :
editAList
함수는 'listNum'에 대한 사용자 입력에서 숫자 0 [기술적으로는 1을 알지 못하는 사용자에 대해 뺄셈이 내장되어 있기 때문에 1]에 대해서만 작동합니다. 다른 값은 '오류를 반환합니다. Uncaught TypeError :'node '에서'replaceChild '를 실행하지 못했습니다. 매개 변수 2의 유형이'Node '입니다.' 일을 해결하기 위해
시도 :
이 (JS는 형식의이 종류를 필요로하지 않는 "느슨한 스크립트"언어 나의 이해에도 불구하고) 숫자로 변환하는 '에서는 parseInt'를 시도했습니다. 'document.createTextNode (prompt (...));'도 시도했습니다. 뿐만 아니라 동일한 오류 메시지가 나타납니다.
문제 2 :
그것은시도를 목록 항목을 삭제하고 단지 '수정'텍스트로 대체
2 해결 :
createTextNode
인수 내 document.createElement("li")
을 넣어 봤어을 - 인쇄 결과 OBJECT HTML LI createTextNode 메서드 앞뒤에 배치하려고했지만 'i'오류가 발생했습니다.
아이디어가 있습니까?
감사합니다 일이 - 신용 대답했다. 후속 질문에 답하지 않더라도. 'list [listNum] .innerHTML = "";'은 무엇입니까? 여기있어? 나는 그것이 문제를 해결하는 것을 본다. 그러나 나는 이유를 알기에 충분한 JS를 이해하지 못한다. – vampiire
지금 생각해보십시오. 텍스트를 공백으로 대체 한 다음 편집을 목록에 추가합니까? – vampiire
@vampiire 맞습니다. 편집 된 텍스트가 이전 텍스트에 추가되지 않도록하는 것입니다. –