如何仅使用 javascript 将删除按钮添加到输入显示?
How can I add a delete button to an input display using only javascript?
好的,在我提出问题之前,我已经对这个答案进行了高低搜索,但我只得出了没有尽头的答案或 jQuery 答案。
我正在尝试仅使用 JAVASCRIPT 来执行此操作。没有其他图书馆。
我知道我在正确的轨道上,但我只是不知道如何只删除我在 div 中创建的输入的最后一个条目(全部使用 js)。
那么,如何使删除按钮实际上只删除它所附加的输入条目?
我将我的脚本放在 jsbin 中。
任何帮助将不胜感激!先感谢您! (:
我想我应该在这里添加我的代码,所以这里是:
<!DOCTYPE html>
<html>
<body>
Name: <input type="text" id="myText" value="">
<br/>
<br/>
Age: <input type="number" name="age">
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var input = document.getElementsByTagName('input')[0].value;
var agenum = document.getElementsByTagName('input')[1].value;
var div = document.createElement('div');
div.style.border = '2px solid red';
div.style.padding = '10px';
div.style.display = 'block';
document.body.appendChild(div);
var output = 'Name: ' + input + '<br/>' + 'Age: ' + agenum;
div.innerHTML = output;
deleteButton(div);
}
function deleteButton(x) {
var del = document.createElement('button');
del.style.textDecoration = 'none';
del.innerHTML = 'Remove this person?';
del.style.color = 'white';
del.style.backgroundColor = 'blue';
document.body.appendChild(del);
}
</script>
</body>
</html>
你不知道的是如何删除 div 本身,你需要将它传递给你的 deleteButton 函数并使用 removeChild
来删除它。与删除按钮本身类似,this
是此处的关键字。
<!DOCTYPE html>
<html>
<body>
Name: <input type="text" id="myText" value="">
<br/>
<br/>
Age: <input type="number" name="age">
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var input = document.getElementsByTagName('input')[0].value;
var agenum = document.getElementsByTagName('input')[1].value;
var div = document.createElement('div');
div.style.border = '2px solid red';
div.style.padding = '10px';
div.style.display = 'block';
document.body.appendChild(div);
var output = 'Name: ' + input + '<br/>' + 'Age: ' + agenum;
div.innerHTML = output;
//create your delete button after you click try it
var del = document.createElement('button');
del.style.textDecoration = 'none';
del.innerHTML = 'Remove this person?';
del.style.color = 'white';
del.style.backgroundColor = 'blue';
//assign a function for it when clicked
del.onclick = function() { deleteButton(div,this)};
document.body.appendChild(del);
<!-- deleteButton(div); -->
}
function deleteButton(x,y) {
var parent = document.getElementsByTagName("BODY")[0];
//remove the div
parent.removeChild(x);
//remore the button
parent.removeChild(y);
}
</script>
</body>
</html>
你绝对是在正确的轨道上。最简单的方法是添加事件处理程序
del.addEventListener('click', function(){ x.parentNode.removeChild(x); })
虽然您还需要确保删除按钮,但我相信您可以解决这个问题。这里还有将 jQuery 转换为 vanilla JS http://youmightnotneedjquery.com/
的重要资源
好的,在我提出问题之前,我已经对这个答案进行了高低搜索,但我只得出了没有尽头的答案或 jQuery 答案。 我正在尝试仅使用 JAVASCRIPT 来执行此操作。没有其他图书馆。
我知道我在正确的轨道上,但我只是不知道如何只删除我在 div 中创建的输入的最后一个条目(全部使用 js)。 那么,如何使删除按钮实际上只删除它所附加的输入条目?
我将我的脚本放在 jsbin 中。 任何帮助将不胜感激!先感谢您! (:
我想我应该在这里添加我的代码,所以这里是:
<!DOCTYPE html>
<html>
<body>
Name: <input type="text" id="myText" value="">
<br/>
<br/>
Age: <input type="number" name="age">
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var input = document.getElementsByTagName('input')[0].value;
var agenum = document.getElementsByTagName('input')[1].value;
var div = document.createElement('div');
div.style.border = '2px solid red';
div.style.padding = '10px';
div.style.display = 'block';
document.body.appendChild(div);
var output = 'Name: ' + input + '<br/>' + 'Age: ' + agenum;
div.innerHTML = output;
deleteButton(div);
}
function deleteButton(x) {
var del = document.createElement('button');
del.style.textDecoration = 'none';
del.innerHTML = 'Remove this person?';
del.style.color = 'white';
del.style.backgroundColor = 'blue';
document.body.appendChild(del);
}
</script>
</body>
</html>
你不知道的是如何删除 div 本身,你需要将它传递给你的 deleteButton 函数并使用 removeChild
来删除它。与删除按钮本身类似,this
是此处的关键字。
<!DOCTYPE html>
<html>
<body>
Name: <input type="text" id="myText" value="">
<br/>
<br/>
Age: <input type="number" name="age">
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var input = document.getElementsByTagName('input')[0].value;
var agenum = document.getElementsByTagName('input')[1].value;
var div = document.createElement('div');
div.style.border = '2px solid red';
div.style.padding = '10px';
div.style.display = 'block';
document.body.appendChild(div);
var output = 'Name: ' + input + '<br/>' + 'Age: ' + agenum;
div.innerHTML = output;
//create your delete button after you click try it
var del = document.createElement('button');
del.style.textDecoration = 'none';
del.innerHTML = 'Remove this person?';
del.style.color = 'white';
del.style.backgroundColor = 'blue';
//assign a function for it when clicked
del.onclick = function() { deleteButton(div,this)};
document.body.appendChild(del);
<!-- deleteButton(div); -->
}
function deleteButton(x,y) {
var parent = document.getElementsByTagName("BODY")[0];
//remove the div
parent.removeChild(x);
//remore the button
parent.removeChild(y);
}
</script>
</body>
</html>
你绝对是在正确的轨道上。最简单的方法是添加事件处理程序
del.addEventListener('click', function(){ x.parentNode.removeChild(x); })
虽然您还需要确保删除按钮,但我相信您可以解决这个问题。这里还有将 jQuery 转换为 vanilla JS http://youmightnotneedjquery.com/
的重要资源