#javascript #jquery
#javascript #jquery ( jquery )
Вопрос:
Я пытаюсь переместить некоторые изображения в режиме просмотра на мобильном устройстве и удалить их с предыдущих мест. Я пробовал этот код, но он заканчивается следующей ошибкой: TypeError: picPos равен null? всякий раз, когда я консольно регистрирую pic или picPos, журнал выглядит именно так, как и должно быть. может ли кто-нибудь понять почему?
btn.addEventListener("click",function(){
for(var i = 0; i<=3; i ){
let picPos = document.getElementById("container" (i 1));
let pic = document.getElementById("box" (i 1));
picPos.appendChild(pic);
}
})
#container2>div{
height:50px;
width:50px;
background-color:red;
margin:5px;
}
<div id="container1"></div>
<div id="container2"></div>
<div id="container3"></div>
<div id="container2">
<div id="box1">1</div>
<div id="box2">2</div>
<div id="box3">3</div>
</div>
<button id="btn">Click</button>
Комментарии:
1. Всякий раз, когда я регистрирую его в консоли, журнал показывает все так, как должно быть.
2. Для контейнера вы используете class в div, но используете getElementById
3. Не добавляйте комментарий, объясняющий ваш вопрос. Добавьте информацию к самому вопросу
4. кроме того, ваше условие продолжения цикла должно быть
i < 3
, а неi <= 3
. Даже если вы исправите свой HTML для использования идентификаторов, это будет искать элемент с идентификаторомcontainer4
, которого у вас нет5. @JuanMendes Я отменил вашу правку, поскольку, похоже, она пыталась изменить фундаментальный вопрос здесь.
Ответ №1:
Вы должны использовать атрибуты id в своем HTML, если используете getElementById
.
Я также изменил ваш цикл на start at 1
, чтобы вам не приходилось добавлять 1 каждый раз в свой цикл. Это зависит от остальной части вашего приложения, если это хорошая идея или нет.
Поскольку я не уверен, что должно произойти в вашем коде, я оставляю это на ваше усмотрение.
btn.addEventListener("click",function(){
for(var i = 1; i<=3; i ){
let picPos = document.getElementById("container" i);
let pic = document.getElementById("box" i);
picPos.appendChild(pic);
}
})
#container4>div{
height:50px;
width:50px;
background-color:red;
margin:5px;
}
<div id="container1" class="container1"></div>
<div id="container2" class="container2"></div>
<div id="container3" class="container3"></div>
<div id="container4">
<div id="box1">1</div>
<div id="box2">2</div>
<div id="box3">3</div>
</div>
<button id="btn">Click</button>
Комментарии:
1. В вашем примере есть два элемента с идентификатором
container2
2. Кроме того, что должно произойти, когда вы нажмете кнопку?
3. Я вижу, что один красный прямоугольник переходит в один из divs, но это должны быть все три из них?
4. О, они все перемещаются, это просто CSS, который не исправлен
5. проблема была каким-то образом связана с (i 1), и теперь она решена, спасибо 🙂