猿问

当我尝试对控制号进行编码时,为什么会收到无法读取属性消息?

我是编码和编程新手,
我已经尝试获取要在页面上显示的幻灯片的控制编号,但我仍然收到此错误消息:

script.js:48未捕获类型错误:无法在加载(script.js:23)时在开始(script.js:48)时读取null的属性'appendChild'在script.js:51开始@ script.js:48加载@脚本.js:23(匿名)@ script.js:51"

有人能告诉我为什么会发生这种情况吗?我的代码如下。

const controls = document.querySelector(".controls");

const container = document.querySelector(".thumbnailcontainer");

const allBox = container.children;

const containerWidth = container.offsetWidth;

const margin = 30;

var item = 0;

var totalItems = 0;


// item setup per slide


responsive = 

  [ { breakPoint: { width:    0, item: 1 }} // if width greater than    0 (1 will item show)

  , { breakPoint: { width:  600, item: 2 }} // if width greater than  600 (2 will item show)

  , { breakPoint: { width: 1000, item: 6 }} // if width greater than 1000 (4 will item show)

  ] 


function load() {

  for (let i = 0; i < responsive.length; i++) {

    if (window.innerWidth > responsive[i].breakPoint.width) {

      items = responsive[i].breakPoint.item

    }

  }

  start();

}


function start() {

  var totalItemsWidth = 0

  for (let i = 0; i < allBox.length; i++) {

    //width and margin setup of items

    allBox[i].style.width = (containerWidth / items) - margin + "px";

    allBox[i].style.margin = (margin / 2) + "px";

    totalItemsWidth += containerWidth / items;

    totalItems++;

  }

  //tumbnail-container width set up

  container.style.width = totalItemsWidth + "px";


  //slides controls number set up

  const allSlides = Math.ceil(totalItems / items);

  const ul = document.createElement("ul");

  for (let i = 1; i <= allSlides; i++) {

    const li = document.createElement("li");

    li.id = i;

    li.innerHTML = i;

    li.setAttribute("onclick", "controlSlides(this)");

    ul.appendChild(li);

  }

  controls.appendChild(ul);

}


window.onload = load();


长风秋雁
浏览 120回答 1
1回答

幕布斯7119047

你的班级名称错误const controls = document.querySelector(".controls");&nbsp; &nbsp;const container = document.querySelector(".thumbnailcontainer");const allBox = container.children;const containerWidth = container.offsetWidth;const margin = 30;var item = 0;var totalItems = 0;// item setup per slideresponsive =&nbsp;&nbsp; [ { breakPoint: { width:&nbsp; &nbsp; 0, item: 1 }} // if width greater than&nbsp; &nbsp; 0 (1 will item show)&nbsp; , { breakPoint: { width:&nbsp; 600, item: 2 }} // if width greater than&nbsp; 600 (2 will item show)&nbsp; , { breakPoint: { width: 1000, item: 6 }} // if width greater than 1000 (4 will item show)&nbsp; ]&nbsp;function load() {&nbsp; for (let i = 0; i < responsive.length; i++) {&nbsp; &nbsp; if (window.innerWidth > responsive[i].breakPoint.width) {&nbsp; &nbsp; &nbsp; items = responsive[i].breakPoint.item&nbsp; &nbsp; }&nbsp; }&nbsp; start();}function start() {&nbsp; var totalItemsWidth = 0&nbsp; for (let i = 0; i < allBox.length; i++) {&nbsp; &nbsp; //width and margin setup of items&nbsp; &nbsp; allBox[i].style.width = (containerWidth / items) - margin + "px";&nbsp; &nbsp; allBox[i].style.margin = (margin / 2) + "px";&nbsp; &nbsp; totalItemsWidth += containerWidth / items;&nbsp; &nbsp; totalItems++;&nbsp; }&nbsp; //tumbnail-container width set up&nbsp; container.style.width = totalItemsWidth + "px";&nbsp; //slides controls number set up&nbsp; const allSlides = Math.ceil(totalItems / items);&nbsp; const ul = document.createElement("ul");&nbsp; for (let i = 1; i <= allSlides; i++) {&nbsp; &nbsp; const li = document.createElement("li");&nbsp; &nbsp; li.id = i;&nbsp; &nbsp; li.innerHTML = i;&nbsp; &nbsp; li.setAttribute("onclick", "controlSlides(this)");&nbsp; &nbsp; ul.appendChild(li);&nbsp; }&nbsp;controls.appendChild(ul);}window.onload = load();* {&nbsp; box-sizing: border-box;}.thumbnailslider {&nbsp; width: 100%;&nbsp; float: left;&nbsp; overflow: hidden;}.thumbanilslider .thumbnailcontainer {&nbsp; width: 100%;&nbsp; float: left;}.thumbnailslider .artitem {&nbsp; height: 175px;&nbsp; background-color: grey;&nbsp; line-height: 175px;&nbsp; text-align: center;&nbsp; font-size: 50px;&nbsp; color: #ffffff;&nbsp; float: left;}<div class="thumbnailslider">&nbsp; <div class="thumbnailcontainer">&nbsp; &nbsp; <div class="artitem">&nbsp; 1 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 2 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 3 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 4 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 5 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 6 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 7 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 8 </div>&nbsp; &nbsp; <div class="artitem">&nbsp; 9 </div>&nbsp; &nbsp; <div class="artitem"> 10 </div>&nbsp; </div>&nbsp; <!-- Control Slides -->&nbsp; <div class="controls">&nbsp; </div></div>
随时随地看视频慕课网APP

相关分类

Html5
我要回答