#javascript #html
#javascript #HTML
Вопрос:
Я пытаюсь создать цикл, который создаст элемент details с источником изображения, который увеличивается на 1 число в каждом цикле. Я могу выполнить цикл, создав правильное количество изображений, но я думаю, что они принимают строку кода как дословную вместо применения номера итерации цикла.
попытка picture.innerHTML = "<img src='asset/' i '.jpeg'>"
, где i — текущая итерация цикла, не работает. есть какие-либо рекомендации по альтернативам? Это также мой первый вопрос, поэтому я прошу прощения, если я немного неясен.
Комментарии:
1. можете ли вы опубликовать цикл foreach, который вы пробовали, но который не работает?
2. я буду позже сегодня вечером, к сожалению, я только что создал эту учетную запись на работе, и файл находится на моем рабочем столе.
3. Я использовал цикл do while, есть ли цикл for each, который я могу использовать для запуска для каждого изображения в файле? Это для приложения, которое я создаю, чтобы упростить управление настольной игрой, в которую я играю с друзьями.
4. Есть. Если вы хотите использовать jQuery, вы можете использовать функцию .each() . В противном случае Марчин К. написал решение для вас.
5. Определенно собираюсь попробовать его решение позже. К сожалению, я все еще изучаю Javascript, поэтому надеялся, что мое решение будет строго JS, пока я не стану более опытным в нем. Однако приятно знать, что есть способ сделать это позже, и, честно говоря, в будущем, вероятно, придется использовать некоторые jQuery в этом проекте исключительно для возможности просто добавлять файлы в папку вместо изменения кода каждый раз, когда мне нужно добавить новое изображение, так что спасибо. Хотел бы я пометить ваш комментарий как будущий ответ: D
Ответ №1:
Альтернатива для ответа Marcin C с помощью Javascript «только»
function createImage(){
var maxImages=5;
for(var i = 1; i<= maxImages; i ){
var img = new Image();
//You can add any style to the images with "style" or calling a predefined CSS "className"
img.style = "width:80px;height:80px";
img.src = "http://website-design-studio.net/finallinkB/wp-content/themes/suffusion/images/" i ".jpg";
//instead of "body" you can append to any other element
document.body.appendChild(img);
}
}
//Function call
createImage();
Ответ №2:
Получить все divs в массиве, а затем перебирать их, изменяя html следующим образом:
var generatePhotos = function () {
var photos = document.getElementsByClassName('photo');
for (var i = 1; i < photos.length; i ){
photos[i].innerHTML = "<img src='http://website-design-studio.net/finallinkB/wp-content/themes/suffusion/images/" i ".jpg'>";
}
}
<div class="photo"></div>
<div class="photo"></div>
<div class="photo"></div>
<div class="photo"></div>
<div class="photo"></div>
<button onclick="generatePhotos()"> Generate photos</button>
Комментарии:
1. Это выглядит очень многообещающе, мне нужно подождать, пока я не вернусь домой сегодня вечером, но, судя по всему, я, возможно, неправильно отформатировал свой innerHTML. будет обновлено позже сегодня вечером. Я все еще относительный новичок в HTML и javascript, но, похоже, я заключил весь innerHTML в кавычки, не позволяя ему использовать локальную переменную i для получения значения, на которое нужно указать номер изображения.
2. Этот ответ сработал отлично и даже позволил мне с относительной легкостью динамически называть каждую фотографию, я действительно ценю помощь.
3. обратите внимание на типы используемых кавычек: «string» var «string = ‘ string2’ «;