Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使我将值重新分配给空字符串,文本字段的内容也不会被清除_Javascript - Fatal编程技术网

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文件没有更新?