質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

660閲覧

javascript todoリスト 削除できない

koko122102

総合スコア39

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

1クリップ

投稿2021/12/16 09:25

質問失礼いたします。表題の通りtodoリストの削除が適応されません。
日付や、やるべき内容などを格納したオブジェクトを配列にして、ブラウザに表示しています。
最終的に、spliceメソッドを使いtodoの削除を試みたのですが反映されませんでした。これは何が原因で、どのような対処をすればよいのでしょうか。
大変恐縮ではございますが、ご教授お願い申し上げます。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <link rel="stylesheet" href="style.css"> 8 <title>Document</title> 9</head> 10<body> 11 <table class="table"> 12 <tr> 13 <th>日付</th> 14 <th>やること</th> 15 <th>優先度</th> 16 <th>削除ボタン</th> 17 </tr> 18 </table> 19 <div class="register"> 20 <input type="text" id="input" value="3"> 21 <button class="btn">登録</button> 22 23 </div> 24 25 <script src="main.js"></script> 26</body> 27</html>

js

1 2let todos = []; 3 4document.addEventListener('DOMContentLoaded',function(){ 5 register(); 6 7}) 8 9function register(){ 10 11 let btn = document.querySelector('.btn'); 12 btn.addEventListener('click',addValue); 13} 14 15function addValue(){ 16 let inputValue = document.querySelector('#input').value; 17 let obj = {}; 18 obj.todoContent = inputValue; 19 const time = new Date(); 20 obj.todoTime = time.toLocaleString(); 21 obj.todoPriority = '3'; 22 obj.isDone = false; 23 todos.push(obj); 24 const tE = document.querySelector('.table'); 25 let newTe = '<tr>' 26 newTe += `<td>${obj.todoTime}</td><td>${obj.todoContent}</td><td>${obj.todoPriority}</td><td><button class="delete">削除</button></td>` 27 newTe += '</tr>' 28 tE.insertAdjacentHTML('beforeend',newTe); 29 del(); 30 31 32} 33 34function del(){ 35 const delBtn = document.querySelectorAll('.delete') 36 console.log(delBtn); 37 delBtn.forEach(ent => { 38 ent.addEventListener('click',function(){ 39 todos.splice(0,1); 40 console.log(todos); 41 }) 42 }) 43}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

配列から削除しただけで、その中身を画面反映させる処理がありません。

投稿2021/12/16 09:29

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koko122102

2021/12/18 11:00

ご返答ありがとうございます。おっしゃる通り、配列から削除しただけでそれをブラウザに反映させる処理を記述していませんでした。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問