gpt4 book ai didi

javascript - 按钮控制的功能用于创建列表项、填充它们,然后进行编辑。发生奇怪的错误。里面的代码和注释

转载 作者:行者123 更新时间:2023-12-03 05:02:15 25 4
gpt4 key购买 nike

问题出现在最后一个函数中,该函数用于根据需要编辑列表

JSBin Link

代码:

// 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,因为我为不知道它从 0 开始的用户内置了一个减法]。任何其他值都会返回错误“Uncaught TypeError:无法在“Node”上执行“replaceChild”:参数 2 不是“Node”类型。”

尝试修复 1:

已尝试使用“parseInt”转换为数字(尽管我了解 JS 是一种“松散脚本”语言,不需要这种格式)。还尝试过 'document.createTextNode(prompt(...));'以及并收到相同的错误消息。

问题 2:

它会删除列表项并仅替换为“编辑”文本

尝试修复 2:

尝试将 document.createElement("li") 放入 createTextNode 参数中 - 导致打印 OBJECT HTML LI尝试将其放置在 createTextNode 方法之前和之后,但它生成了“i”错误

有什么想法吗?

最佳答案

使用编辑功能:

function editAList(){
var list = document.getElementsByTagName("li");
var uList = document.getElementById("List");
var listLength = list.length;
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"));
list[listNum].innerHTML="";
list[listNum].appendChild(edit);
}

关于javascript - 按钮控制的功能用于创建列表项、填充它们,然后进行编辑。发生奇怪的错误。里面的代码和注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com