使用Javascript删除文本字段
我使用以下代码在调用函数时添加文本字段:使用Javascript删除文本字段,javascript,function,textfield,Javascript,Function,Textfield,我使用以下代码在调用函数时添加文本字段: <span id="response"></span> <script> var qcountBox = 2; var acountBox = 2; var qboxName = 0; var aboxName = 0; function addInput() { var qboxN
<span id="response"></span>
<script>
var qcountBox = 2;
var acountBox = 2;
var qboxName = 0;
var aboxName = 0;
function addInput()
{
var qboxName="question"+qcountBox;
var aboxName="answer"+acountBox;
if(qcountBox <=10 && acountBox <= 10)
{
document.getElementById('response').innerHTML+='<br/>Question '+qcountBox+': <input type="text" name="'+qboxName+'"/>';
document.getElementById('response').innerHTML+='<br/>Answer '+acountBox+': <input type="text" name="'+aboxName+'"/><br/>';
qcountBox ++;
acountBox ++;
}else
alert("No more than 10 questions allowed at this time.");
}
var qcountBox=2;
var acountBox=2;
var qboxName=0;
var aboxName=0;
函数addInput()
{
var qboxName=“问题”+qcountBox;
var aboxName=“answer”+accountbox;
如果(qcountBox用一个通用类名将每个新的HTML片段包围在一个范围内,那么,找到所有具有该类名的对象并将其删除
将范围和类名添加到以下内容:
document.getElementById('response').innerHTML+='<span class="added"> <br/>Question '+qcountBox+': <input type="text" name="'+qboxName+'"/></span>';
document.getElementById('response').innerHTML+='<span class="added"><br/>Answer '+acountBox+': <input type="text" name="'+aboxName+'"/><br/></span>';
document.getElementById('response').innerHTML+='
问题'+qcountBox+':';
document.getElementById('response').innerHTML+='
答案'+acountBox+':
';
然后,可以删除所有添加的跨距,如下所示:
var items = document.getElementsByClassName("added");
for (var i = 0; i < items.length; i++) {
items[i].parentNode.removeChild(items[i]);
}
function removeInput()
{
var qboxName = "question" + count;
var aboxName = "answer" + count;
document.getElementById("response").removeChild(document.getElementById(aboxName));
document.getElementById("response").removeChild(document.getElementById(aboxName));
count--;
}
var items=document.getElementsByClassName(“添加”);
对于(变量i=0;i
注意:这通常是添加新HTML的更好方法,因为它不会重写所有以前的HTML-它只是添加新的DOM对象:
var span = document.createElement("span");
span.className = "added";
span.innerHTML = '<br/>Question '+qcountBox+': <input type="text" name="'+qboxName+'"/><br/>Answer '+acountBox+': <input type="text" name="'+aboxName+'"/><br/>';
document.getElementById('response').appendChild(span);
var span=document.createElement(“span”);
span.className=“已添加”;
span.innerHTML='
问题'+qcountBox+':
答案'+accountbox+':
;
document.getElementById('response').appendChild(span);
var qcountBox=1;
var acountBox=1;
var qboxName=0;
var aboxName=0;
函数addInput()
{
var qboxName=“问题”+qcountBox;
var aboxName=“answer”+accountbox;
如果(qcountBox,您实际上应该在javascript中创建一个输入元素,并通过appendChild
将其附加到容器中,而不是使用innerHTML+=
您还应该为这些字段设置一个ID,而不仅仅是一个名称。但它可以与它们的名称相同
像这样
var input = document.createElement("input");
input.type = "text";
input.name = input.id = qboxName;
document.getElementById("response").appendChild(input);
然后,你知道,对你需要的另一个输入字段做同样的操作。
我知道你需要一个文本标签的框,或其他什么,只要做同样的过程,插入一个跨度标签之前,他们
另外,我看不出这两个计数变量有什么原因。完全可能只有一个计数变量,而不是qcountBox
和accountbox
。也许我错了,但你不应该在设置框名之前增加这个计数吗
要删除它,可以使用removeChild
方法,然后减少计数变量。如下所示:
var items = document.getElementsByClassName("added");
for (var i = 0; i < items.length; i++) {
items[i].parentNode.removeChild(items[i]);
}
function removeInput()
{
var qboxName = "question" + count;
var aboxName = "answer" + count;
document.getElementById("response").removeChild(document.getElementById(aboxName));
document.getElementById("response").removeChild(document.getElementById(aboxName));
count--;
}
也许如果您要将其他元素与这些字段一起插入,比如标签的span标记等,最好将它们都包装在一个div或其他东西中,然后只需将removeChild
移到这个容器div即可。在添加问题时,为div使用特定的id,并在其中添加问题,这样就很容易了使用idI完全删除该div有一个跨度我忘了包含该部分代码,我刚刚更新了它。我如何使用您发布的按钮?谢谢您创建一个按钮,附加一个单击处理程序,该处理程序执行代码以删除添加的问题。似乎我打了某人的软肋spot@MattI-我在你回复之前编辑了我以前的评论但是,我觉得你需要自己在这里做一些研究,至少找到如何将javascript连接到按钮点击。