【问题标题】:I cant get data from this getElementbyId我无法从此 getElementbyId 获取数据
【发布时间】:2020-08-08 10:52:30
【问题描述】:

HTML 部分...具有 4 个属性的待办事项列表:属性“描述”不会显示在表格上。但是当您在第一个单元格(标题)上单击时,它应该返回所有 4 个属性。

<body>
  <h1 id="h1">ToDo Lijst</h1>
   <label for="item">Titel</label><br>
   <input type="text" id = "Item"><br><br>
   <!--<p style="color:red; font-size:18px;" id="FoutInput"></p>-->
   <label for = "aantal">Omschrijving</label><br>
   <input class="desc" type="text" id="description"><br><br>
   <label for="person">Toegewezen Person</label><br>
   <input type="text" id = "person"><br><br>
   <label for="deadline">Deadline</label><br>
   <input type="text" id="deadline">     
   <button type = "button" onclick="Toevoegen()"><span>&#43;</span></button>
   <button type="button" onclick="Edit()" >Aanpassen</button>   
   <button style="background-color: crimson" onclick="Verwijderen()"><i class="fa fa-trash-o"></i></button>   
   <p style="color:red; font-size:15px;" id="FoutInput"></p>   
   <table id="table">
     <tr>         
         <th>Titel</th>
         <th>Toegewezen Person</th>
         <th>Deadline</th>         
     </tr>       
   </table>    
//javascript part
var rIndex,
    table = document.getElementById("table");

    
function Toevoegen()
{   
      var newrow = table.insertRow(table.length),
        cell1 = newrow.insertCell(0),
        cell2=newrow.insertCell(1),
        cell3=newrow.insertCell(2),
        Titel = document.getElementById("Item").value,
        person = document.getElementById("person").value,
        deadline = document.getElementById("deadline").value;
        //var description = document.getElementById("description").value;
    
    if(Titel != "" && person != "" && deadline != "")
    {
        
    cell1.innerHTML = Titel;
    cell2.innerHTML = person;
    cell3.innerHTML = deadline;
    document.getElementById("Item").value = "";     document.getElementById("person").value = ""; 
    document.getElementById("deadline").value = "";
    document.getElementById("description").value = "";    
    console.log(description);
    var text1 = "Toegevoegd!"; 
     document.getElementById("FoutInput").innerHTML = text1;        
   }       
           else{ 
                cell1 = newrow.deleteCell(0);
                cell2 = newrow.deleteCell(0,1);
                var text = "Veld(en) mag(mogen) niet leeg blijven!"; 
               document.getElementById("FoutInput").innerHTML = text;              
           }        
        selectedRowtoinput();
        selectedCell();   
        
}
function selectedCell(){      
    
    for(var i = 1;i<table.rows.length; i++){
    
    table.rows[i].cells[0].ondblclick = function(){    
       
        var titel = document.getElementById("Item").value;   
        var person = document.getElementById("person").value;
        var deadline = document.getElementById("deadline").value;
        var description = 
         document.getElementById("description").value;      
            
        console.log(description);        
        
    alert("overzicht:" + "\n" + titel+ "\n" + person+ "\n" + deadline + "\n" + "omschrijving: " + description);
    
   
    }
    }
    
}

function selectedRowtoinput()
{    
    for(var i =1; i< table.rows.length; i++)
    {
        table.rows[i].onclick = function()
        {
            rIndex = this.rowIndex;
            document.getElementById("Item").value =this.cells[0].innerHTML;
            document.getElementById("person").value =this.cells[1].innerHTML;
            document.getElementById("deadline").value =this.cells[2].innerHTML;
            
        }
    }
}
selectedRowtoinput();

我无法从以下位置获取数据: 变量描述 = document.getElementById("description").value;

    console.log(description); 

我只是得到一个空行。我从其他 3 人那里得到信息,除了这个……

【问题讨论】:

  • 无法重现,在我的浏览器上运行正常,你可能做错了什么
  • 你对console.log(description);有什么期望?
  • 我希望您在输入字段“描述”中输入的值。
  • function selectedcell().. 我得到所有的值(var people,var feedback 和 var Titel,但我不能最后一个“描述”......如果我 console.log 它得到一个空行。

标签: javascript html function


【解决方案1】:

好的,我已经更新了您的代码并用逻辑对其进行了更改,您确实创建了用于描述的单元格,但隐藏起来,因此它不可见,但仍保存数据,请查看示例

var rIndex,
    table = document.getElementById("table");
    
function Toevoegen()
{   
      var newrow = table.insertRow(table.length),
        cell1 = newrow.insertCell(0),
        cell2=newrow.insertCell(1),
        cell3=newrow.insertCell(2),
        cell4=newrow.insertCell(3),
        Titel = document.getElementById("Item").value,
        person = document.getElementById("person").value,
        deadline = document.getElementById("deadline").value,
        description = document.getElementById("description").value;
        // Make hidden cell for description
        cell4.className += " hidden";
    
    if(Titel != "" && person != "" && deadline != "")
    {
        
    cell1.innerHTML = Titel;
    cell2.innerHTML = person;
    cell3.innerHTML = deadline;
    // Put data in hidden cell
    cell4.innerHTML = description;
    document.getElementById("Item").value = "";
    document.getElementById("person").value = ""; 
    document.getElementById("deadline").value = "";
    document.getElementById("description").value = "";    
    var text1 = "Toegevoegd!"; 
     document.getElementById("FoutInput").innerHTML = text1;        
   }       
           else{ 
                cell1 = newrow.deleteCell(0);
                cell2 = newrow.deleteCell(0,1);
                var text = "Veld(en) mag(mogen) niet leeg blijven!"; 
               document.getElementById("FoutInput").innerHTML = text;              
           }        
        selectedRowtoinput();
        selectedCell();   
        
}
function selectedCell(){      
    for(var i = 1;i<table.rows.length; i++){
    
    table.rows[i].cells[0].ondblclick = function(){    
       
        var titel = document.getElementById("Item").value;   
        var person = document.getElementById("person").value;
        var deadline = document.getElementById("deadline").value;
        var description = document.getElementById("description").value;            
        
    alert("overzicht:" + "\n" + titel+ "\n" + person+ "\n" + deadline + "\n" + "omschrijving: " + description);
    
   
    }
    }
    
}

function selectedRowtoinput()
{    
    for(var i =1; i< table.rows.length; i++)
    {
        table.rows[i].onclick = function()
        {
            rIndex = this.rowIndex;
            document.getElementById("Item").value = this.cells[0].innerHTML;
            document.getElementById("person").value = this.cells[1].innerHTML;
            document.getElementById("deadline").value = this.cells[2].innerHTML;
            document.getElementById("description").value = this.cells[3].innerHTML;
        }
    }
}
selectedRowtoinput();
.hidden {
  display: none;
}
<body>
  <h1 id="h1">ToDo Lijst</h1>
   <label for="item">Titel</label><br>
   <input type="text" id = "Item"><br><br>
   <!--<p style="color:red; font-size:18px;" id="FoutInput"></p>-->
   <label for = "aantal">Omschrijving</label><br>
   <input class="desc" type="text" id="description"><br><br>
   <label for="person">Toegewezen Person</label><br>
   <input type="text" id = "person"><br><br>
   <label for="deadline">Deadline</label><br>
   <input type="text" id="deadline">     
   <button type = "button" onclick="Toevoegen()"><span>&#43;</span></button>
   <button type="button" onclick="Edit()" >Aanpassen</button>   
   <button style="background-color: crimson" onclick="Verwijderen()"><i class="fa fa-trash-o"></i></button>   
   <p style="color:red; font-size:15px;" id="FoutInput"></p>   
   <table id="table">
     <tr>         
         <th>Titel</th>
         <th>Toegewezen Person</th>
         <th>Deadline</th>         
     </tr>       
   </table>

【讨论】:

  • 问题出在函数 selectedcell() 上...我从“getElementeById”(var people、var title 和 var feedback...中获取所有数据...除了用于描述的数据...
  • 现在试试我的例子,但请记住 - 在selectedcell() 中,您只在每行的第一个单元格上设置了ondblclick,所以双击第一个单元格,您将得到alert pop加上description 内容
  • 谢谢老兄...现在可以使用了!!!但是为什么只有在我将 var description 放在函数之外时它才有效?我没有在其他人(标题,人员和反馈)上这样做,但它确实有效......
  • 更新我的例子,检查更新的描述。如果这个答案完全解决了你的问题,请设置为已解决)
  • 我使用“alert”来显示 4 个属性...;如果我想使用“popover”...我必须如何以及在哪里添加它?
猜你喜欢
  • 2019-05-02
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 2021-04-28
相关资源
最近更新 更多