replaceChild 'on' Node ': параметр 1 не относится к типу' Node ' - PullRequest
0 голосов
/ 03 февраля 2019

Привет, я проверял свои коды, но я просто понятия не имею, почему происходит ошибка.Очевидно, я не получаю значения моего ребенка из моего ttList.

<ul id = "ttList" style="list-style: none; padding-left: 0"></ul>
function creatTT()
{
    var input = document.getElementById("integer").value;
    var li;
    var value;

    if(/^[1-9]$/.test(input) == true)
    {
        for(var i = 1; i <= 9; i++)
        {
            li = document.createElement("li");
            value = document.createTextNode(input + " x "  + i  + " = " + (input* i));
            li.appendChild(value);
            document.getElementById("ttList").appendChild(li);
        }
    }
        var ttList = document.getElementById("ttList").childNodes[0];
        ttList.replaceChild(input, ttList.childNodes[0]);
}

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Замените ввод на document.getElementById("integer") в replacechild, так как input содержит значение input element, а не сам элемент.replacechild ожидает замены элемента, а не значения.

function creatTT()
{
    var input = document.getElementById('value').value;
    var li;
    var value;

    if(/^[1-9]$/.test(input) == true)
    {
        for(var i = 1; i <= 9; i++)
        {
            li = document.createElement("li");
            value = document.createTextNode(input + " x "  + i  + " = " + (input* i));
            li.appendChild(value);
            document.getElementById("ttList").appendChild(li);
        }
    }
        var ttList = document.getElementById("ttList").childNodes[0];
          ttList.replaceChild(document.getElementById('value'), ttList.childNodes[0]);
      
}
creatTT()
<input id="integer" value='6' />
<ul id = "ttList" style="list-style: none; padding-left: 0"></ul>
0 голосов
/ 03 февраля 2019

Вы используете значение Node в методе replaceChild вместо самого Node.пожалуйста, попробуйте с кодом ниже.

<ul id = "ttList" style="list-style: none; padding-left: 0"></ul>
function creatTT()
{
    var input = document.getElementById("integer").value;
    var inputNode = document.getElementById("integer");
    var li;
    var value;

    if(/^[1-9]$/.test(input) == true)
    {
        for(var i = 1; i <= 9; i++)
        {
            li = document.createElement("li");
            value = document.createTextNode(input + " x "  + i  + " = " + (input* i));
            li.appendChild(value);
            document.getElementById("ttList").appendChild(li);
        }
    }
        var ttList = document.getElementById("ttList").childNodes[0];
        ttList.replaceChild(inputNode , ttList.childNodes[0]);
}
...