teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

質問内容更新

2020/09/30 08:57

投稿

TruoG91
TruoG91

スコア7

title CHANGED
File without changes
body CHANGED
@@ -2,11 +2,15 @@
2
2
  僕はHTML+JavaScriptを勉強し始めです。
3
3
  今、テーブルに関する処理を上記のタイトルのように動作しようとしております。
4
4
  そして、以下のように実装していますが、なかなか想定に一致しません。
5
- 実際結果は「ステータス」列にて値が変わりません。
5
+ ~~実際結果は「ステータス」列にて値が変わりません。
6
6
  但し、僕が期待した結果が「ステータス」列に「Pending」を表示してから、「NG、OKなど」に変更していきます。
7
7
  以下のように実装してエラーが発生しませんが、期待のようにならないので、
8
- どのように改善すればいいでしょうか。
8
+ どのように改善すればいいでしょうか。~~
9
-
9
+ 上記の内容はLhankor_Mhy様の回答通り解決できました。
10
+ 但し、以下の実装だと、「Pending」のステータスを見えなく、
11
+ 「OK,NG」しか見えません。
12
+ 期待したのはPendingを見てから各列を変更していくなので、どうすれば解決でしょうか。
13
+ まだ勉強中なので、キーワードを調べようとしますが、参照できるものだけでいいですが、解決方法を教えていただけますと幸いです。
10
14
  ```html
11
15
  <!DOCTYPE html>
12
16
  <html>
@@ -52,6 +56,7 @@
52
56
 
53
57
 
54
58
  $("#add-student-btn").click(function() {
59
+ table.clear().draw()
55
60
  let infoTextArea = document.getElementById("text_area").value.trim();
56
61
  let studentInfoList = new Array();
57
62
  infoTextArea = infoTextArea.split("\n");
@@ -71,9 +76,10 @@
71
76
  studentInfoList.push(studentInfo);
72
77
  }
73
78
  for ( i = 0; i < studenNum; i++) {
74
- // こちらにはRowごとに変更したいです。
79
+ // tại đây em muốn check từng tên rồi update kết quả status
75
80
  let checkNameStudent = checkStudent(studentInfoList[i])
76
- table.row.add(checkNameStudent).draw();
81
+ table.row(i).data(checkNameStudent).draw();
82
+
77
83
  }
78
84
 
79
85
  });
@@ -81,14 +87,15 @@
81
87
 
82
88
  function checkStudent(data) {
83
89
  let studentName = data["name"];
90
+ sleep(5000);
84
91
  if (studentName == "Tommy") {
85
- let rowData = {
92
+ var rowData = {
86
93
  "no": data["no"],
87
94
  "name": data["name"],
88
95
  "status": "OK-passed"
89
96
  };
90
97
  } else {
91
- let rowData = {
98
+ var rowData = {
92
99
  "no": data["no"],
93
100
  "name": data["name"],
94
101
  "status": "NG-failed"
@@ -96,6 +103,15 @@
96
103
  }
97
104
  return rowData;
98
105
  }
106
+
107
+ function sleep(milliseconds) {
108
+ var start = new Date().getTime();
109
+ for (var i = 0; i < 1e7; i++) {
110
+ if ((new Date().getTime() - start) > milliseconds){
111
+ break;
112
+ }
113
+ }
114
+ }
99
115
  ```
100
116
 
101
117
  ご教示していただけますと幸いです。

2

質問内容更新

2020/09/30 08:57

投稿

TruoG91
TruoG91

スコア7

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,11 @@
2
2
  僕はHTML+JavaScriptを勉強し始めです。
3
3
  今、テーブルに関する処理を上記のタイトルのように動作しようとしております。
4
4
  そして、以下のように実装していますが、なかなか想定に一致しません。
5
+ 実際結果は「ステータス」列にて値が変わりません。
6
+ 但し、僕が期待した結果が「ステータス」列に「Pending」を表示してから、「NG、OKなど」に変更していきます。
7
+ 以下のように実装してエラーが発生しませんが、期待のようにならないので、
8
+ どのように改善すればいいでしょうか。
9
+
5
10
  ```html
6
11
  <!DOCTYPE html>
7
12
  <html>
@@ -92,5 +97,6 @@
92
97
  return rowData;
93
98
  }
94
99
  ```
100
+
95
101
  ご教示していただけますと幸いです。
96
102
  よろしくお願いいたします。

1

html本体を更新しました

2020/09/30 08:14

投稿

TruoG91
TruoG91

スコア7

title CHANGED
File without changes
body CHANGED
@@ -3,20 +3,37 @@
3
3
  今、テーブルに関する処理を上記のタイトルのように動作しようとしております。
4
4
  そして、以下のように実装していますが、なかなか想定に一致しません。
5
5
  ```html
6
- <textarea type="text" name="text_area" id="text_area"></textarea>
7
- <table id="student-info-table">
8
- <thead>
9
- <td>No</td>
10
- <td>Name</td>
11
- <td>Status</td>
12
- </thead>
13
- </table>
14
- <div>
15
- <button id="add-student-btn">Add</button>
16
- </div>
17
- <link rel="stylesheet" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
18
- <script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
19
- <script src="./index.js"></script>
6
+ <!DOCTYPE html>
7
+ <html>
8
+ <head>
9
+ <title>Datatable demo</title>
10
+ </head>
11
+
12
+ <body>
13
+ <textarea type="text" name="text_area" id="text_area"></textarea>
14
+ <table id="student-info-table">
15
+ <thead>
16
+ <td>No</td>
17
+ <td>Name</td>
18
+ <td>Status</td>
19
+ </thead>
20
+ </table>
21
+ <div>
22
+ <button id="add-student-btn">Add</button>
23
+ </div>
24
+ </body>
25
+
26
+ <!-- Bootstrap -->
27
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
28
+ <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
29
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
30
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
31
+
32
+ <!-- DataTable -->
33
+ <link rel="stylesheet" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
34
+ <script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
35
+ <script src="./index.js"></script>
36
+ </html>
20
37
  ```
21
38
  index.jsは以下のようになっています。
22
39
  ```javascript