将jQuery的val().split()代码转换为Vanilla JS时遇到错误
问题分析与修正代码
你的Vanilla JS代码有两个关键问题导致功能失效:
- 原生数组没有
remove()方法:jQuery对数组做了扩展,提供了remove()方法,但原生JS数组不存在这个方法,调用会直接报错。而且你错误地尝试将这个不存在方法的返回值重新赋值给delfino,这会让变量变成undefined。 - 未将处理结果写回textarea:原jQuery代码最后会把拼接后的字符串重新赋值给文本框,但你的代码处理完数组后,没有把结果赋值给
camPito.value,所以文本框内容不会有任何变化。
修正后的代码:
let camPito = document.getElementById("campotxt"); function updateTextBox(nehemyah) { let delfino = camPito.value.split("\n"); // 用splice删除指定索引的元素,第二个参数1表示仅删除1个元素 delfino.splice(nehemyah, 1); // 将处理后的数组拼接为字符串,赋值回文本框更新内容 camPito.value = delfino.join("\n"); }
关键修正说明
- 直接通过
split("\n")拆分文本框内容为数组,无需分步赋值 - 用原生数组的
splice(index, count)方法替代jQuery的remove(),该方法会直接修改原数组 - 必须将拼接后的字符串赋值给
camPito.value,才能让textarea显示更新后的内容
内容的提问来源于stack exchange,提问作者SadDeepLoper
相关产品推荐
相关产品推荐

