javascript - HTML 输入值追加到 Bootstrap 表

标签 javascript jquery html css

我正在尝试将用户提供的输入值传递给 Bootstrap 表。用户提供姓名和分数。目前它显示在表格的正下方,而不是在表格内。我将如何去做这件事。我尝试使用 javascript 附加它,但似乎无法弄清楚。谢谢

最佳答案

您必须使用以下行将 rankings 中的数据作为 trs 行附加到表中:

 $('table').append('<tr><td>' + rankPosition + '</td><td> ' +rankings[i].name + '</td><td>'
 + rankings[i].score + ' pts</td></tr>');

注意:在循环之前添加$('table tbody').empty()以重置表格内容。

希望这对您有所帮助。


$(document).ready(function() {
  var scoreboard;
  var rankings = [];
  var displayScoreboard = function(rankings) {
    var rankPosition = 1;
    var tieScore = 0
    var previousScore = 0;
    $('#rankings').html('')
    $('table tbody').empty();

    for (var i = 0; i < rankings.length; i++) {
      if (i > 0 && rankings[i-1].score !== rankings[i].score) {
        rankPosition = rankPosition + tieScore +1;
      }
      $('table').append('<tr><td>' + rankPosition + '</td><td> ' +rankings[i].name + '</td><td> ' + rankings[i].score + ' pts</td></tr>')
    }
  }
  var sortRankings = function(rankings) {
    rankings.sort(function(a, b) {
      return b.score-a.score;
    });
  };
  $('#add').on('click', function() {
    var playerName = $('#eq-name').val();
    var playerScore = $('#eq-score').val();

    if (playerName.length > 0 && playerScore.length > 0) {
      var playerStats = {name: playerName, score: playerScore};
      rankings.push(playerStats);
      sortRankings(rankings);
      displayScoreboard(rankings);
      $('#eq-name').val('');
      $('#eq-score').val('');
    } else {
      alert("Please enter a name and a score");
    }
  });

  $('#clear').on('click', function() {
    $('#rankings').html('');
    rankings = [];
  });
});
.eq-input {
  display:block;
  text-align:center;
  vertical-align:middle;
  width:100%;
  height:100%;
  padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
  <head>
    <meta charset="utf-8">
    <title>EverQuoteTest</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/main.scss">
  </head>
  <body>

    <div class="container eq-input">
      <input type="text" id="eq-name" placeholder="Name">
      <input type="number" id="eq-score" placeholder="Score" min=0>
      <br>
      <br>
      <button class="btn btn-success" id="add">Add To Rankings</button>
      <button class="btn btn-danger" id="clear">Clear Rankings</button>
      <a id="add-game" class="btn btn-default ">Add Game</a>
    </div>

    <div class="container">
      <div class="col-md-8 col-md-offset-4">
        <h3>Leaderboard</h3>
      </div>
      <table class="table" border="1">
        <thead>
          <tr>
            <th>Rank</th>
            <th>Name</th>
            <th>Score</th>
          </tr>
        </thead>
      </table>
      <ul class="list-unstyled" id="rankings"></ul>
    </div>

    <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <!-- <script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.0.0/lodash.min.js"></script> -->
    <script src="js/main.js"></script>
  </body>
</html>

关于javascript - HTML 输入值追加到 Bootstrap 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34981804/

相关文章:

javascript - ES6 箭头函数 this

javascript - 输入值未显示(AngularJS)

php - 通过ajax发送数据到下拉列表未完全设置为选定

html - 带有复选框的 Treeview 带有 Css 的简单 html

javascript - 如何以编程方式(在 JavaScript 中)将 "sub-divs"添加到 div?

javascript - 在导航菜单中突出显示事件选项卡

javascript - getElementById 和 jquery 之间的区别 $('#smth' )

javascript - getJson 使用 jQuery 加载特定数据不起作用

javascript - bootstrap pull-right 类和行类

javascript - 如何将一个日期框中的值复制到下一个日期框