#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Я пытаюсь импортировать фотографии из локального файла на моем компьютере в свой HTML-файл. Мне удалось это сделать, но он выполняется в порядке возрастания. Я попытался добавить переменную
JavaScript
$(document).ready( function() {
$("span").each( function(i) {
$(this).append("<img src='Images/With Out Logo/Insta Photo-" ( i) ".JPG'
/>");
});
});
HTML
<span class="Images"></span>
Ответ №1:
Сначала проверьте length
содержимое span
коллекции, а затем вставьте изображение в length - i
:
const $spans = $("span");
const { length } = $spans;
$spans.each(function(i) {
$(this).append("<img src='Images/With Out Logo/Insta Photo-" (length - i) ".JPG' />");
});
Комментарии:
1. Мне нужно узнать количество файлов в каталоге, потому что в папке больше изображений.
2. Нет способа сделать это элегантно на стороне клиента; либо жестко запрограммируйте количество файлов, либо используйте серверный язык для их подсчета и динамической генерации соответствующего количества
<span>
файлов.
Ответ №2:
Попробуйте выполнить цикл в порядке убывания
$(document).ready(function() {
let getAllSpans = $('span');
let getSpanLength = $('span').length;
for (let i = getSpanLength; i > 0; i--) {
getAllSpans[i].append('<img src="Images/With Out Logo/Insta Photo-"' i '".JPG">')
}
});
<span class="Images"></span>
Ответ №3:
вы можете уменьшить «i», используя длину интервала, используя Jquery, взгляните на приведенный ниже код.
let valuez;
$("span").each( function(i) {
valuez = $('span').length;
console.log(valuez - i);
});
function test(){
valuez = $('span').length;
console.log(valuez);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span>one</span>
<span>two</span>
<span>three</span>
<span>four</span>
<span>five</span>