【问题标题】:Why i add new button and list thing,it won't do request 1 and 2?为什么我添加新按钮和列表的东西,它不会做请求 1 和 2?
【发布时间】:2019-01-29 14:08:12
【问题描述】:

request1:单击列表项,它会打开和关闭 .done 类。

request2:在每个列表项旁边添加按钮以在单击按钮时删除该项

request3:添加一个新的列表项,它会自动在其旁边添加删除按钮。同时满足要求1和2

我想问的问题是我已经完成了请求1和2,正如标题所说:为什么我添加新按钮和列表项,它不会执行请求1和2

第一个代码是js,第二个代码是css,第三​​个代码是html。 request1 需要使用名为 .done 的 css
在我的 js 中:

var button = document.getElementById("enter");
var input = document.getElementById("userinput");
var ul = document.querySelector("ul");
var span= document.getElementsByTagName("span");
var DeleteButton=document.getElementsByTagName("button");
/*Delete button */
[...document.getElementsByTagName('button')].forEach(el =>
  el.addEventListener('click', () =>
    el.parentNode.parentNode.removeChild(el.parentNode)));

/*toggle .done property*/
for(var i=0; i<span.length; i++){
   span[i].addEventListener("click", liClick);
}
function liClick(){
 this.classList.toggle("done");
}  


function inputLength() {
	return input.value.length;
}

function createListElement() {
	var li = document.createElement("li");
    var deletebutton = document.createElement("button")
    var spanitem = document.createElement("span")
	spanitem.appendChild(document.createTextNode(input.value));
    deletebutton.appendChild(document.createTextNode("Delete"));
	ul.appendChild(li);
    li.appendChild(spanitem)
    li.appendChild(deletebutton);
	input.value = "";
}

function addListAfterClick() {
	if (inputLength() > 0) {
		createListElement();
	}
}

function addListAfterKeypress(event) {
	if (inputLength() > 0 && event.keyCode === 13) {
		createListElement();
	}
}

button.addEventListener("click", addListAfterClick);

input.addEventListener("keypress", addListAfterKeypress);
.done {
  text-decoration: line-through;
}
<input id="userinput" type="text" placeholder="enter items">
	<button id="enter">Enter</button>
	<ul id="Delete">
        <li class="bold red" random="23">
            <span>Notebook</span>
            <button >Delete</button>
        </li>
        
		<li>
            <span>Jello</span>
            <button >Delete</button>
        </li>
        
		<li>
		    <span>Spinach</span>
            <button >Delete</button>
        </li>
        
		<li>
            <span>Rice</span>
            <button >Delete</button>
        </li>
        
		<li>
		     <span>Birthday Cake</span>
		     <button >Delete</button>
		  
        </li>
        
		<li>
		      <span>Candles</span>
		      <button>Delete</button>
        </li>
        
	</ul>
	<script type="text/javascript" src="script.js"></script>

【问题讨论】:

    标签: javascript


    【解决方案1】:

    更新后的 JS:

    var button = document.getElementById("enter");
    var input = document.getElementById("userinput");
    var ul = document.getElementById("Delete");
    var span= document.getElementsByTagName("span");
    var DeleteButton=document.getElementsByTagName("button");
    /*Delete button */
    [...document.querySelectorAll('.del')].forEach(el =>
      el.addEventListener('click', () =>
        el.parentNode.parentNode.removeChild(el.parentNode)));
    
    /*toggle .done property*/
    for(var i=0; i<span.length; i++){
       span[i].addEventListener("click", liClick);
    }
    function liClick(){
     this.classList.toggle("done");
    }  
    
    
    function inputLength() {
        return input.value.length;
    }
    
    function createListElement() {
        var li = document.createElement("li");
        li.addEventListener('click', () => {
            li.classList.toggle("done");
        })
        var deletebutton = document.createElement("button")
        var spanitem = document.createElement("span")
        spanitem.appendChild(document.createTextNode(input.value));
        deletebutton.appendChild(document.createTextNode("Delete"));
        deletebutton.addEventListener('click', () => {
            ul.removeChild(li);
        });
        ul.appendChild(li);
        li.appendChild(spanitem)
        li.appendChild(deletebutton);
        input.value = "";
    
    }
    
    function addListAfterClick() {
        if (inputLength() > 0) {
            createListElement();
        }
    }
    
    function addListAfterKeypress(event) {
        if (inputLength() > 0 && event.keyCode === 13) {
            createListElement();
        }
    }
    
    button.addEventListener("click", addListAfterClick);
    
    input.addEventListener("keypress", addListAfterKeypress);
    

    并为所有按钮元素添加“del”类

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      相关资源
      最近更新 更多