当前位置: 代码迷 >> JavaScript >> appendChild用法,变量数组Javascript
  详细解决方案

appendChild用法,变量数组Javascript

热度:82   发布时间:2023-06-07 11:22:04.0

尝试使用appendChild在段落中创建子元素时,我想这里缺少一些基本内容,但是我无法弄清楚是什么,并且不确定我是否正确使用了appendChild。

<!DOCTYPE html>
<html>
<body>

<p>Accessing Variables from an Array</p>

<p id="demo"></p>

<script>
var employees = [
    {
    "firstName":"John",
    "lastName":"Doe"
    }, 
    {
    "firstName":"Anna",
    "lastName":"Smith"
    },
    {
    "firstName":"Peter",
    "lastName":"Jones"
    }
];
document.getElementById("demo").innerHTML =
employees[0].firstName + " " + employees[0].lastName;


childtest=document.getElementById("demo").innerHTML=employees[1].firstName;
first = document.getElementById("demo");
first.appendChild(childtest);
</script>

</body>
</html>

我想做的是创建一个“ demo”的子代,并使用第二组员工,并使该子元素和输出位于第一个输出的下方。

childtest不是这里的元素。

// Create a new empty <p> element.
var childtest = document.createElement('p');
// Set the innerHTML.
childtest.innerHTML = employees[1].firstname;
// Append that <p> element.
first.appendChild(childtest);

您的问题是您没有创建新元素,而使用.innerHTML覆盖了现有元素

var employees = [{
    "firstName": "John",
        "lastName": "Doe"
}, {
    "firstName": "Anna",
        "lastName": "Smith"
}, {
    "firstName": "Peter",
        "lastName": "Jones"
}];
document.getElementById("demo").innerHTML = employees[0].firstName + " " + employees[0].lastName;



var newEl = document.createTextNode(employees[1].firstName);
first = document.getElementById("demo");
first.appendChild(newEl);

Katpoes说得对,只是为了澄清,这有效:

<!DOCTYPE html>
<html>
<body>

<p>How to create a JavaScript object array.</p>

<p id="demo"></p>

<script>
var employees = [
    {
    "firstName":"John",
    "lastName":"Doe"
    }, 
    {
    "firstName":"Anna",
    "lastName":"Smith"
    },
    {
    "firstName":"Peter",
    "lastName":"Jones"
    }
];
document.getElementById("demo").innerHTML =
employees[0].firstName + " " + employees[0].lastName;
var childtest=document.createElement("p");
childtest.innerHTML = employees[1].firstName;
first = document.getElementById("demo");
first.appendChild(childtest);
</script>

</body>
</html>
  相关解决方案