JavaScript DOM 테이블 조작

mvp21
  1. 첫 번째 문제

cut()첫 번째뿐만 아니라 모든 td 요소에 "line-through"를 적용 하도록 함수를 수정하는 방법 .

  1. 두 번째 문제

테이블을 생성 할 때 한 번만 this.details자동으로 th테이블을 생성하기 위해 빠진 것이 무엇인지 모르겠습니다 (아래 코드와 같이 html로 표시하지 않음).

 this.details = `<tr>
                                                                                              
             <th>Item description<\th>
             <th>Action<\th>
             <td>${this.item}</td>
             <td>${this.action}</td>
             </tr>`;

그리고 th는 각각에 대해 생성됩니다 td.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="style.css">
    <title>list</title>
</head>
<body>
    <h2>list</h2>
    <div class="container">
        <input type="text" name="item" id="item">
        <label for="item"></label>
        <input type="button" value="Add item" class="addBtn" id="add">
    </div>
    <div class="container" id="sort">
        <input type="button" value="Sort asc" class="btn">
        <input type="button" value="Sort desc" class="btn">
    </div>
    <div class="tableData" id="table">
        <table id="display-none">
            <tr>
              <th class="show-succes">product</th>
              <th class="show-succes">mark</th>
            </tr>
    </div>
    <script src="app.js"></script>
</body>
</html>




function Item(item, action, table) {
    this.item = item;
    this.action = `<input type="button" value="Mark as buyed" class="newBtn" id="buton" onclick="cut()" `;
    this.details = `<tr>
                       <td>${this.item}</td>
                       <td>${this.action}</td>
                    </tr>`;
    this.table = table;
    this.addToTable = function () {
        this.table.innerHTML += this.details;
    };
}



const addBtn = document.getElementById('add');

addBtn.addEventListener('click', addNewItem);


function addNewItem() {
    const items = document.getElementById('item').value;
    const actions = 'mark as buyed'
    const myTable = document.getElementById('display-none');
    
    const item = new Item(items, actions, myTable);
    item.addToTable();
    
}

function cut() {
    let el = document.querySelector("td");
    el.style.textDecoration = "line-through";
  
}


*{
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
    text-decoration: none;
}

h2 {
    text-align: center;
    padding: 60px ;
}

input[type="text"]{
    margin-right: 20px;
}
label{
    padding: 15px;
}
.btn{
    padding: 5px;
    margin-top: 20px;
    margin-right: 10px;
}
#sort{
    margin-left: -90px;
}
.container{
    display: flex;
    justify-content: center;
}


#table{
    width: 40%;
    text-align: center;
    margin-left: 650px;
    margin-top: 20px;
}
스콧 마커스

당신의 접근 방식은 필요 이상으로 훨씬 더 복잡하고 실제로 그것을 고치려고 노력하지 않을 것입니다.

가장 간단한 접근 방식은 아래 주석 인라인을 참조하십시오.

// Get reference to the elements you'll use
// over and over, just once.
const input = document.getElementById("item");
const tbl = document.querySelector("table");
const add = document.querySelector(".addBtn");

// Add an event handler for the add button click
add.addEventListener("click", function(){
  let row = tbl.insertRow();     // Add a row to the table
  let itemCell = row.insertCell();  // Add a td to the row
  itemCell.textContent = input.value;  // Put the input value in the td
  let actionCell = row.insertCell();  // Add a second td to the row
  let chk = document.createElement("input");  // Create a new input
  chk.type = "checkbox";  // Make the input a checkbox
  chk.value = "bought";   // Set a value for the checkbox
  
  // Set up an event handler for the new checkbox
  chk.addEventListener("click", function(){
    // Find the nearest ancestor tr and then query it 
    // for the first td in it. Then toggle the use of the
    // "strike" CSS class to add or remove strikethrough.
    this.closest("tr").querySelector("td").classList.toggle("strike");
  });
  
  actionCell.appendChild(chk); // Add the checkbox to the td
  input.value = ""; // Clear out the textbox
  tbl.classList.remove("hidden"); // Show the table
});
body {
  font-family:Calibri, Helvetica, Arial;
}

h1 {
  font-size:1.8em;
}

div {
  margin:1em;
}

.strike {
  text-decoration-line: line-through;
}

.hidden {
  display:none;
}
<h1>SHOPPING LIST</h1>
<div class="addItems">
   <input type="text" id="item">
   <input type="button" value="Add item" class="addBtn">
</div>
<table class="hidden">
  <tr>
    <th>Item</th>
    <th>Bought?</th>
  </tr>
</table>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

테이블에서 angularjs dom 조작

분류에서Dev

PHP DOM HTML 테이블 조작

분류에서Dev

간단한 JavaScript DOM 조작

분류에서Dev

데이터 객체에 의한 Javascript DOM 조작

분류에서Dev

JQuery / JavaScript 선택기 및 HTML 테이블 조작

분류에서Dev

DOM을 사용하여 테이블의 요소 구성-JavaScript

분류에서Dev

동적으로 생성되는 HTML 테이블에 Javascript If 조건 작성

분류에서Dev

xmlHttpRequest 및 테이블 조작?

분류에서Dev

dom bftrip 및 bsort false 데이터 테이블이 함께 작동하지 않음

분류에서Dev

동위 요소 내부로 요소를 이동하여 JavaScript 또는 jQuery를 사용한 DOM 조작

분류에서Dev

Javascript (Vue.js)-DOM의 잘못된 노드에 테이블 행 추가

분류에서Dev

Javascript-계산을 수행하는 동안 DOM 조작

분류에서Dev

반응 | DOM 조작

분류에서Dev

AngularJS로 DOM 조작

분류에서Dev

DOM 조작 질문

분류에서Dev

Angular의 DOM 조작

분류에서Dev

JavaScript에서 ID로 특정 테이블 (<tbody>) 참조

분류에서Dev

자바 서블릿 DOM 조작 및 HTML 출력

분류에서Dev

테이블에 대한 ID 참조없이 순수 JavaScript를 사용하여 테이블에 TR 추가

분류에서Dev

css 전용 테이블 조작

분류에서Dev

R에서 테이블 조작

분류에서Dev

Mathematica에서 테이블 조작

분류에서Dev

자바 스크립트-DOM 조작 테스트

분류에서Dev

Javascript : 2 개의 배열에서 HTML 테이블 작성

분류에서Dev

DOM 조작 언어로 Javascript가 아닌 Java를 사용하는 브라우저

분류에서Dev

JavaScript-모든 DOM 조작 함수가 null / empty를 반환합니까?

분류에서Dev

DOM 조작을 통해로드 된 Javascript 서브 파일에서 오류 캡처

분류에서Dev

데이터 테이블 Jquery Dom 위치

분류에서Dev

간단한 HTML DOM으로 HTML 데이터 조작

Related 관련 기사

  1. 1

    테이블에서 angularjs dom 조작

  2. 2

    PHP DOM HTML 테이블 조작

  3. 3

    간단한 JavaScript DOM 조작

  4. 4

    데이터 객체에 의한 Javascript DOM 조작

  5. 5

    JQuery / JavaScript 선택기 및 HTML 테이블 조작

  6. 6

    DOM을 사용하여 테이블의 요소 구성-JavaScript

  7. 7

    동적으로 생성되는 HTML 테이블에 Javascript If 조건 작성

  8. 8

    xmlHttpRequest 및 테이블 조작?

  9. 9

    dom bftrip 및 bsort false 데이터 테이블이 함께 작동하지 않음

  10. 10

    동위 요소 내부로 요소를 이동하여 JavaScript 또는 jQuery를 사용한 DOM 조작

  11. 11

    Javascript (Vue.js)-DOM의 잘못된 노드에 테이블 행 추가

  12. 12

    Javascript-계산을 수행하는 동안 DOM 조작

  13. 13

    반응 | DOM 조작

  14. 14

    AngularJS로 DOM 조작

  15. 15

    DOM 조작 질문

  16. 16

    Angular의 DOM 조작

  17. 17

    JavaScript에서 ID로 특정 테이블 (<tbody>) 참조

  18. 18

    자바 서블릿 DOM 조작 및 HTML 출력

  19. 19

    테이블에 대한 ID 참조없이 순수 JavaScript를 사용하여 테이블에 TR 추가

  20. 20

    css 전용 테이블 조작

  21. 21

    R에서 테이블 조작

  22. 22

    Mathematica에서 테이블 조작

  23. 23

    자바 스크립트-DOM 조작 테스트

  24. 24

    Javascript : 2 개의 배열에서 HTML 테이블 작성

  25. 25

    DOM 조작 언어로 Javascript가 아닌 Java를 사용하는 브라우저

  26. 26

    JavaScript-모든 DOM 조작 함수가 null / empty를 반환합니까?

  27. 27

    DOM 조작을 통해로드 된 Javascript 서브 파일에서 오류 캡처

  28. 28

    데이터 테이블 Jquery Dom 위치

  29. 29

    간단한 HTML DOM으로 HTML 데이터 조작

뜨겁다태그

보관