2016-04-27 31 views
-1

我試圖在數組中添加一個演員時將其顯示在表格中,將數組中的演員顯示到表格中。對於每個演員,我應該能夠更新和刪除它們。將一個項目放在一個數組中

我不確定如何從html中獲取值以顯示在表格中。

var actors, i; 
 

 
var Info = [ 
 
      {firstName: "Jason", lastName: "Statham", birth: "July 26, 1967", gender: "Male", genre: "Action, Crime, Thriller"}, 
 
      {firstName: "Mark", lastName: "Wahlberg", birth: "June 5, 1971", gender: "Male", genre: "Action, Comedy, Drama"} 
 
      ]; 
 
var displayActors = function(actors) { 
 
    var str = "<table class='table'>"; 
 
    str += "<tr>"; 
 
    str += "<th>First Name</th><th>Last Name</th><th>Date of Birth</th><th>Gender</th><th>Genre</th>"; 
 
    str += "</tr>"; 
 
    for(i=0; i < actors.length; i++){ 
 
     str += "<tr>"; 
 
     str += "<td>" + actors[i].firstName + "</td>"; 
 
     str += "<td>" + actors[i].lastName + "</td>"; 
 
     str += "<td>" + actors[i].birth + "</td>"; 
 
     str += "<td>" + actors[i].gender + "</td>"; 
 
     str += "<td>" + actors[i].genre + "</td>"; 
 
     str += "</tr>"; 
 
    } 
 
    str += "</table>"; 
 

 
    document.getElementById("actorGrid").innerHTML = str; 
 
} 
 

 
window.onload = function() { 
 
    displayActors(Info); 
 
} 
 
document.getElementById("submit").onclick = function() { 
 
    var fName = ""; 
 
\t var str = "<table class='table'>"; 
 
    fName = document.getElementById("fname").value; 
 
    if(fName != "") { 
 
\t \t str += "<tr>"; 
 
\t \t str += "<td>" + Info.push({firstName: fName}) + "</td>"; 
 
\t \t str += "</tr>"; 
 
    } 
 
    str += "</table>"; 
 
    document.getElementById("actorGrid").innerHTML += str; 
 
}
<div class="main"> 
 
    <h2 class="ad">Add Actors</h2> 
 
    <div id="add"> 
 
     <label>First Name</label><br /> 
 
     <input type="text" id="fname"/><br /> 
 

 
     <label>Last Name</label><br /> 
 
     <input type="text" id="lname"/><br /> 
 

 
     <label>Date of Birth</label><br /> 
 
     <input type="date" id="dob"/><br /> 
 

 
     <form action=""> 
 
      <label>Gender:</label><br /> 
 
      Male<input type="radio" name="gender" value="Male" id="male"/> 
 
      Female<input type="radio" name="gender" value="Female" id="female"/><br /> 
 
     </form> 
 

 
     <form action=""> 
 
      <label>Genre:</label><br /> 
 
      <label>Action<input type="checkbox" id="action"/></label> 
 
      <label>Adventure<input type="checkbox" id="adventure"/></label> 
 
      <label>Thriller<input type="checkbox" id="thriller"/></label> 
 
      <label>Drama<input type="checkbox" id="drama"/></label> 
 
     </form> 
 
        
 
      <br /><input type="button" id="submit" value="Add Actor" /> 
 
      <hr> 
 
    </div> 
 
    <div id="actorGrid"></div> 
 
</div>

+1

你的代碼的具體問題是什麼?我們應該看什麼部分? –

+0

@FelixKling我相信作者在說明中指出了這一點。 「我不確定如何從html中獲取值以顯示在表格中。」 – 8protons

+1

我建議你使用JavaScript庫或框架,如jQuery,AngularJS或Vue.js – Sn0opr

回答

1

如果你是重新描繪整個錶行,那麼我相信你的點擊事件處理程序可以只是

document.getElementById("submit").onclick = function() { 
    var fName = document.getElementById("fname").value; 
    Info.push({firstName: fName}); 
    displayActors(Info); 
}; 

關於你的問題,Array#push正是你如何添加數組的新值和value屬性正是您如何從表單元素中讀取值的方式。

+0

這正是我所需要的,現在我可以用其他字段來做到這一點,例如單選按鈕,日期選擇器和複選框? – Angel

+0

當然。獲取所有這些值,創建一個對象並將其添加到數組中。 –

+0

非常感謝! – Angel

相關問題