Javascript 即使我将值重新分配给空字符串,文本字段的内容也不会被清除
我试图在提交表单时清除文本字段,但由于某些原因,它似乎不清晰。我试着把这句话放在不同的地方来澄清文本,但似乎没有什么不同 我尝试过使用Javascript 即使我将值重新分配给空字符串,文本字段的内容也不会被清除,javascript,Javascript,我试图在提交表单时清除文本字段,但由于某些原因,它似乎不清晰。我试着把这句话放在不同的地方来澄清文本,但似乎没有什么不同 我尝试过使用textContent、nodeValue和value,但由于某些原因,它不起作用。以前,当我最初使用一个函数做所有事情时,它都可以工作,但后来我决定将列表项创建从一个函数更改为一个类,然后在函数中使用该类 下面是HTML 拖放 输入您的文本: 下面是JavaScript // Import drag and drop functions. import {
textContent
、nodeValue
和value
,但由于某些原因,它不起作用。以前,当我最初使用一个函数做所有事情时,它都可以工作,但后来我决定将列表项创建从一个函数更改为一个类,然后在函数中使用该类
下面是HTML
拖放
输入您的文本:
下面是JavaScript
// Import drag and drop functions.
import {
dragStart,
dragEnd,
dragEnter,
dragLeave,
dragOver,
dragDrop
} from "./dragndropfunctions.js";
import { ID } from "./id.js";
// Local storage.
const listItemStorage = window.localStorage;
// Remove randid entry which always seems to show up for some reason.
listItemStorage.removeItem("randid");
// Grab text from text field and list items.
const textField = document.querySelector("#text-content");
const listItemsContainer = document.querySelector("#list-items-container");
const listItems = listItemsContainer.childNodes;
class NewListItem {
constructor(textFieldText) {
this.textFieldText = textFieldText;
const listItem = document.createElement("li");
const listItemText = document.createTextNode(textFieldText);
listItem.appendChild(listItemText);
listItem.className = "list-item";
listItem.setAttribute("draggable", true);
listItemsContainer.appendChild(listItem);
listItemStorage.setItem(ID(), listItem.textContent);
}
}
function createAndAddNewListItem() {
let textFieldText = textField.value;
if (textFieldText.length > 0) {
new NewListItem(textFieldText);
textFieldText = "";
} else {
console.log("Please enter some text...");
}
}
// Load pre-existing list items into the list during page onload.
function listItemOnload() {
for (let key in listItemStorage) {
if (listItemStorage.getItem(key) != null) {
let listItem = document.createElement("li");
const listItemText = document.createTextNode(
listItemStorage.getItem(key)
);
listItem.appendChild(listItemText);
addEventListenersToListItems();
listItem.className = "list-item";
listItem.setAttribute("draggable", true);
listItemsContainer.appendChild(listItem);
}
}
}
function addEventListenersToListItems() {
for (const item of listItems) {
item.addEventListener("dragstart", dragStart, false);
item.addEventListener("dragend", dragEnd, false);
item.addEventListener("dragover", dragOver, false);
item.addEventListener("dragenter", dragEnter, false);
item.addEventListener("dragleave", dragLeave, false);
item.addEventListener("drop", dragDrop, false);
}
}
// listItemStorage.clear();
console.log(typeof listItems);
export { createAndAddNewListItem,
我假设这是您尝试将文本内容设置为空字符串的行
if (textFieldText.length > 0) {
new NewListItem(textFieldText);
textFieldText = "";
如果是这种情况,那么错误在于,在此之前,您通过let textFieldText=textField.value代码>。将字符串指定给变量时,它不是指针,而是副本。因此,当您将textFieldText
设置为空字符串时,它不会影响textInput字段的值。必须将textInput字段的值设置为空字符串:
textField.value=”“代码>
如果我的假设是错误的,即这是您尝试更改文本字段值的方式,那么请在您尝试设置文本字段值的地方张贴代码。可能您的js文件没有更新?