Javascript-在多个位置插入代码段

Javascript-在多个位置插入代码段,javascript,Javascript,我喜欢做的是:如果填写了3个可选字段中的任何一个,则会在源代码(表)中插入一段代码(行),然后输出整个代码 我现在的问题是:如果输入了多个字段,则只插入最后一个输入。我需要全部插入。我怀疑“code=”语句需要更改/重新定位,但不确定如何执行。我是javascript的初学者,所以请尽可能保持基本答案。谢谢 html: javascript: var source = '<table><!--PlaceHolder1--><!--PlaceHolder2--&g

我喜欢做的是:如果填写了3个可选字段中的任何一个,则会在源代码(表)中插入一段代码(行),然后输出整个代码

我现在的问题是:如果输入了多个字段,则只插入最后一个输入。我需要全部插入。我怀疑“code=”语句需要更改/重新定位,但不确定如何执行。我是javascript的初学者,所以请尽可能保持基本答案。谢谢

html:


javascript:

var source = '<table><!--PlaceHolder1--><!--PlaceHolder2--><!--PlaceHolder3--></table>';
var insert = '<tr><td>InsertText</td></tr>';

function update(){

if(document.getElementById("input1").value != ""){

  var x = document.getElementById("input1").value;
  var y = insert.replace("InsertText", x );         
  code = source.replace("<!--PlaceHolder1-->", y );
  }

if(document.getElementById("input2").value != ""){

  var x = document.getElementById("input2").value;
  var y = insert.replace("InsertText", x );         
  code = source.replace("<!--PlaceHolder2-->", y );
  }

if(document.getElementById("input3").value != ""){

  var x = document.getElementById("input3").value;
  var y = insert.replace("InsertText", x );         
  code = source.replace("<!--PlaceHolder3-->", y );
  }

}

document.write(code);
var-source='';
var insert='InsertText';
函数更新(){
if(document.getElementById(“input1”).value!=“”){
var x=document.getElementById(“input1”).value;
变量y=insert.replace(“InsertText”,x);
代码=源。替换(“,y”);
}
if(document.getElementById(“input2”).value!=“”){
var x=document.getElementById(“input2”).value;
变量y=insert.replace(“InsertText”,x);
代码=源。替换(“,y”);
}
if(document.getElementById(“input3”).value!=“”){
var x=document.getElementById(“input3”).value;
变量y=insert.replace(“InsertText”,x);
代码=源。替换(“,y”);
}
}
文件。编写(代码);

问题的一部分在于您试图通过字符串替换来实现这一点。您应该使用正确的DOM操作。这也将允许您大量清理代码:

window.onload=function(){
功能更新(e){
var目标=e.target,
num=target.getAttribute(“数据num”),
td=document.queryselectoral(“#theTable td”)[num-1];
td.textContent=target.value;
td.parentNode.style.display=“表格行”;
}

对于(var i=1;i来说,看起来您正在丢失第一次替换的结果,该结果位于变量“code”中,因为在后续替换中您正在用“source”的内容覆盖它

与此相反:

code = source.replace("<!--PlaceHolder2-->", y );
code=source.replace(“,y”);
试试这个:

code = code.replace("<!--PlaceHolder2-->", y );
code=code.replace(“,y”);

我想你会得到你所期望的。

请不要使用
文档。写
。如果一本书告诉你要使用它,你需要一本更好的书来教你DOM操作。尝试将
code=source.replace…
改为
code+=source.replace…
看起来你只是在覆盖你自己,因为有三者之间没有明确的区别,特别是当涉及到
code
变量时。@slime你能给我一个例子吗?但是'else if'条件只有在第一个'if'条件不满足时才会执行,不是吗?@JLRishe我只是用它来证明'code'是我需要输出的,你可以替换它带alert()的,你喜欢什么都行。谢谢!我得调查一下。就是这样!这就解决了问题,正是我想要的。谢谢!!
code = code.replace("<!--PlaceHolder2-->", y );