Вопросов, которые приходят в последней функции, которая служит для редактирования списков по мере необходимостиКнопки, управляемые функциями для создания элементов списка, заполнения их, а затем редактирования. происходят любопытные ошибки. код и комментарии внутри
код:
// 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
функция работает ТОЛЬКО для числа 0 [технически 1, потому что у меня есть вычитание, встроенное для пользователя, который не знает, что он начинается с 0] при вводе пользователя для «listNum». Любое другое значение возвращает ошибку 'Uncaught TypeError: Не удалось выполнить' replaceChild 'в' Node ': параметр 2 не имеет типа' Node '.'
Попытки исправить 1:
Пытались «ParseInt» преобразовать в число (несмотря на мое понимание того, что JS является «свободный сценарий» язык, который не нуждается в такого рода форматирования). Вы также попробовали 'document.createTextNode (prompt (...));' а также получил такое же сообщение об ошибке.
Выпуск 2:
Он стирает элемент списка и заменяет только «изменить» текст
Попытки исправить 2:
Пытались положить document.createElement("li")
в createTextNode
аргументе - привело к печати OBJECT HTML LI Пробовал помещать его до и после метода createTextNode, но сгенерировал ошибку 'i'
Любые идеи?
Спасибо, что работали - дал вам ответ кредит. Если вы не возражаете ответить на следующий вопрос. Что такое 'list [listNum] .innerHTML = "";' здесь? Я вижу, что он исправляет проблему, но я недостаточно понимаю JS, чтобы знать, почему. – vampiire
Думать об этом сейчас. Является ли он заменяет текст пробелом, а затем добавляет редактирование в список? – vampiire
@vampiire вы правы, так что отредактированный текст не добавляется к предыдущему. –