Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript appendChild()不工作?(第一次使用appendChild())_Javascript_Appendchild - Fatal编程技术网

JavaScript appendChild()不工作?(第一次使用appendChild())

JavaScript appendChild()不工作?(第一次使用appendChild()),javascript,appendchild,Javascript,Appendchild,我正在尝试建立一个小简历生成器。我希望用户能够输入任意数量的电话号码。但是,appendChild()未按预期工作。事实上,它根本不起作用。它什么也不做。有什么想法吗 HTML: Javascript: var numberOfPhoneInputs = 1; function addPhoneNumber() { // Found out the following doesn't work as expected... // var newPhoneNumberInput =

我正在尝试建立一个小简历生成器。我希望用户能够输入任意数量的电话号码。但是,appendChild()未按预期工作。事实上,它根本不起作用。它什么也不做。有什么想法吗

HTML:



Javascript:

var numberOfPhoneInputs = 1;

function addPhoneNumber()
{

// Found out the following doesn't work as expected...
//  var newPhoneNumberInput =  "<input type=\"text\" size=\"20\" name = \"phoneNumber[" + 
//      numberOfPhoneInputs +"]\" value=\"\" />" +
//    "<br />" 
//  document.getElementById("phoneNumbers").innerHTML += newPhoneNumberInput;


    var div = document.getElementByID("phoneNumbers");

    var newPhoneNumberInput = document.createElement('input');
    newPhoneNumberInput.setAttribute('type', 'text');
    newPhoneNumberInput.setAttribute('name', 'phoneNumber['+numberOfPhoneInputs+']');
    newPhoneNumberInput.setAttribute('size', '20');
    newPhoneNumberInput.setAttribute('value', '');
    div.appendChild(newPhoneNumberInput);


    numberOfPhoneInputs ++;
}
var numberOfPhoneInputs=1;
函数addPhoneNumber()
{
//发现以下内容无法按预期工作。。。
//var newPhoneNumberInput=“”+
//“
” //document.getElementById(“PhoneNumber”).innerHTML+=newPhoneNumberInput; var div=document.getElementByID(“电话号码”); var newPhoneNumberInput=document.createElement('input'); newPhoneNumberInput.setAttribute('type','text'); newPhoneNumberInput.setAttribute('name','phoneNumber['+numberOfPhoneInputs+']'); newPhoneNumberInput.setAttribute('size','20'); newPhoneNumberInput.setAttribute('value',''); div.appendChild(newPhoneNumberInput); numberOfPhoneInputs++; }
您需要
返回false,以阻止按钮提交页面的默认操作。

文档。getElementByID
必须是
文档。getElementByID


此错误应显示在控制台中。

您需要进行这些更改

  • 更改
    document.getElementByID(“电话号码”)
    document.getElementById(“电话号码”)

  • (可选)如果您将
    var-div
    更改为
    var-phoneNumbersDiv
    或其他内容,这将很好

  • 小提琴示例:

    更新代码:

    var numberOfPhoneInputs = 1;
    
    function addPhoneNumber(){
        var div1 = document.getElementById("phoneNumbers");
        var newPhoneNumberInput = document.createElement('input');
        newPhoneNumberInput.setAttribute('type', 'text');           newPhoneNumberInput.setAttribute('name', 'phoneNumber['+numberOfPhoneInputs+']');
        newPhoneNumberInput.setAttribute('size', '20');
        newPhoneNumberInput.setAttribute('value', '');
        div1.appendChild(newPhoneNumberInput);
    
        numberOfPhoneInputs ++;
    }
    

    你有一个XSS漏洞。你在控制台中有任何错误吗?我想不出他为什么需要将
    var div
    更改为
    var div1
    ,你能详细说明一下吗?没有必要。。更新了代码。。我刚才说是为了更好的目的,因为div是一个元素名。谢谢!我没有任何控制台…:(@Silver:使用Firebug或Chrome,没有控制台开发就像没有窗口驾驶一样。
    var numberOfPhoneInputs = 1;
    
    function addPhoneNumber(){
        var div1 = document.getElementById("phoneNumbers");
        var newPhoneNumberInput = document.createElement('input');
        newPhoneNumberInput.setAttribute('type', 'text');           newPhoneNumberInput.setAttribute('name', 'phoneNumber['+numberOfPhoneInputs+']');
        newPhoneNumberInput.setAttribute('size', '20');
        newPhoneNumberInput.setAttribute('value', '');
        div1.appendChild(newPhoneNumberInput);
    
        numberOfPhoneInputs ++;
    }