Element.querySelector未定义

Bil*_*son 6 javascript dom

为什么这段代码会在控制台读取时抛出错误TypeError: pizzaBox.querySelector is not a function. (In 'pizzaBox.querySelector('h6')', 'pizzaBox.querySelector' is undefined)

function addToppingsToAll (toppings)
{
    var pizzaBoxHolder = document.getElementById("PizzaBoxHolder");
    var PizzaBoxList   = pizzaBoxHolder.childNodes;
    for ( var i = 0 ; i < pizzaBoxList.length ; i++ )
    {
        var pizzaBox            = pizzaBoxList[i];
        toppingList             = pizzaBox.querySelector('h6');
        toppingList.textContent = "You have " + toppings " on your pizza";
    }
}
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 6

您的代码中至少有三个问题:

  1. 您可能正在迭代一些没有.querySelector()方法的文本节点.
  2. 您没有初始化for循环迭代变量i
  3. 您有一个lineBoxList尝试使用的未声明变量.

您可以通过使用.querySelectorAll()并让选择器为您完成更多工作来简化操作.

function addToppingsToAll (toppings) {
    var toppingItems = document.querySelectorAll("#PizzaBoxHolder h6");
    for (var i = 0; i < toppingItems.length; i++) {
        toppingItems[i].textContent = "You have " + toppings " on your pizza";
    }
}
Run Code Online (Sandbox Code Playgroud)