won*_*t77 15 javascript onclick
我有这个JavaScript代码:
window.onload = init;
function init () {
var button = document.getElementById("submitButton");
button.onclick = addItem;
var listItems = document.querySelectorAll("li"); //assigning the remove click event to all list items
for (var i = 0; i < listItems.length; i++) {
listItems[i].onclick = li.parentNode.removeChild(li);
}
}
function addItem() {
var textInput = document.getElementById("item"); //getting text input
var text = textInput.value; //getting value of text input element
var ul = document.getElementById("ul"); //getting element <ul> to add element to
var li = document.createElement("li"); //creating li element to add
li.innerHTML = text; //inserting text into newly created <li> element
if (ul.childElementCount == 0) { //using if/else statement to add items to top of list
ul.appendChild(li); // will add if count of ul children is 0 otherwise add before first item
}
else {
ul.insertBefore(li, ul.firstChild);
}
}
function remove(e) {
var li = e.target;
var listItems = document.querySelectorAll("li");
var ul = document.getElementById("ul");
li.parentNode.removeChild(li);
}
Run Code Online (Sandbox Code Playgroud)
这个HTML:
<body>
<form>
<label for="item">Add an item: </label>
<input id="item" type="text" size="20"><br>
<input id="submitButton" type="button" value="Add!">
</form>
<ul id="ul">
</ul>
<p>
Click an item to remove it from the list.
</p>
</body>
Run Code Online (Sandbox Code Playgroud)
我想要做的是删除<li>用户点击的任何元素,但这似乎不起作用,我无法在这个特定场景的其他任何地方找到答案.希望有人可以帮助我,告诉我我错过了什么.
mpl*_*jan 29
既然你没有提到jQuery
document.getElementById("ul").addEventListener("click",function(e) {
var tgt = e.target;
if (tgt.tagName.toUpperCase() == "LI") {
tgt.parentNode.removeChild(tgt); // or tgt.remove();
}
});
Run Code Online (Sandbox Code Playgroud)
你可能想把它包起来
$(function() {
$("#submitButton").on("click",function() {
var text = $("#item").val(); //getting value of text input element
var li = $('<li/>').text(text)
$("#ul").prepend(li);
});
$("#ul").on("click","li",function() {
$(this).remove();
});
});
Run Code Online (Sandbox Code Playgroud)
重新阅读这个问题我认为你也想把它添加到动态LI中
var listItems = document.getElementsByTagName("li"); // or document.querySelectorAll("li");
for (var i = 0; i < listItems.length; i++) {
listItems[i].onclick = function() {this.parentNode.removeChild(this);}
}
Run Code Online (Sandbox Code Playgroud)
这是我希望您编写代码的完整代码
window.onload=function() { // or addEventListener
// do stuff to the DOM here
}
Run Code Online (Sandbox Code Playgroud)
如果你想使用jQuery,整个过程会变得更简单
li.innerHTML = text; //inserting text into newly created <li> element
li.onclick = function() {
this.parentNode.removeChild(this);
// or this.remove(); if supported
}
Run Code Online (Sandbox Code Playgroud)
我知道你已经收到了答案,但回到原来的删除功能.你有以下几点:
function remove(e) {
var li = e.target;
var listItems = document.querySelectorAll("li");
var ul = document.getElementById("ul");
li.parentNode.removeChild(li);
}
Run Code Online (Sandbox Code Playgroud)
把它改成这个,你应该得到你想要实现的目标:
function remove(e)
{
var li = e.target;
var ol = li.parentElement;
ol.removeChild( li);
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37149 次 |
| 最近记录: |