2016-03-23 3 views
0

Я использую jQuery.filerhttps://github.com/CreativeDream/jQuery.filer, чтобы загрузить изображения в части редактирования (это в отдельном файле JavaScript) ниже метода получения данных. Я использую MySQL для хранения имен изображений:jQuery.filer JavaScript-массив, получающий данные из цикла

files: [ 
    { 
     name: image1, 
     size: 5453, 
     type: "image/jpg", 
     file: "uploads/" + image1 
    }, { 
     name: image2, 
     size: 5453, 
     type: "image/jpg", 
     file: "uploads/" + image2 
    } 
] 

мне нужно добавить петлю на это, чтобы получить доступные имена, которые не являются пустыми.

Я использую document.getElementById:

var image1 = document.getElementById('image1').value; 
var image2 = document.getElementById('image2').value; 
var image3 = document.getElementById('image3').value; 
var image4 = document.getElementById('image4').value; 
var image5 = document.getElementById('image5').value; 
var image6 = document.getElementById('image6').value; 
var image7 = document.getElementById('image7').value; 
var image8 = document.getElementById('image8').value; 
var image9 = document.getElementById('image9').value; 
var image10 = document.getElementById('image10').value; 

это есть функция filer.js

_filesCheck: function() { 
         var s = 0; 
         if(n.limit && f.files.length + f._itFl.length > n.limit) { 
          alert(f._assets.textParse(n.captions.errors.filesLimit)); 
          return false 
         } 
         for(var t = 0; t < f.files.length; t++) { 
          var x = f.files[t].name.split(".") 
           .pop() 
           .toLowerCase(), 
           file = f.files[t], 
           m = { 
            name: file.name, 
            size: file.size, 
            size2: f._assets.bytesToSize(file.size), 
            type: file.type, 
            ext: x 
           }; 
          if(n.extensions != null && $.inArray(x, n.extensions) == -1) { 
           alert(f._assets.textParse(n.captions.errors.filesType, m)); 
           return false; 
           break 
          } 
          if(n.maxSize != null && f.files[t].size > n.maxSize * 1048576) { 
           alert(f._assets.textParse(n.captions.errors.filesSize, m)); 
           return false; 
           break 
          } 
          if(file.size == 4096 && file.type.length == 0) { 
           return false; 
           break 
          } 
          s += f.files[t].size 
         } 
         if(n.maxSize != null && s >= Math.round(n.maxSize * 1048576)) { 
          alert(f._assets.textParse(n.captions.errors.filesSizeAll)); 
          return false 
         } 
         if((n.addMore || n.uploadFile)) { 
          var m = f._itFl.filter(function(a, b) { 
           if(a.file.name == file.name && a.file.size == file.size && a.file.type == file.type && (file.lastModified ? a.file.lastModified == file.lastModified : true)) { 
            return true; 
           } 
          }); 
          if(m.length > 0) { 
           return false 
          } 
         } 
         return true; 
        }, 

Пожалуйста, дайте мне знать, как добавить в этот массив, который доступен только?

+0

вы хотите достичь цикл, который пересекает все изображения? поэтому может быть только 3 изображения, а также 100 - динамическое число? – messerbill

+0

Возможно, вы захотите опубликовать некоторый html, чтобы мы могли создать решение, которое работает с вашей разметкой. Если вы хотите что-то перебрать, то вы хотите использовать классные имена или структуру для определения входных данных, а не идентификаторов. –

+0

точно messerbill Я хочу так динамично получить – user1750832

ответ

1

Если вы хотите, чтобы цикл по всем элементам вашей страницы не зная их точное количество, но, зная, что их id начнем со словом image вы можете сделать это (Jquery):

$('[id^=image]').each(function() { 
    var $el=$(this); 

    // do whatever you need with the element stored in $el 
}); 
+0

блестящее решение :) вы также можете использовать классы css и получить доступ к ним через '$ ('. ClassName'). Each (function() ...)' – messerbill

+0

как добавить файлы [] в этом – user1750832

+0

Этот код выполняет итерации узлов DOM с определенными идентификаторами (аналогично тому, что вы пытались достичь с помощью '' 'getElementById()' ''). О том, как выполнить цикл через массив JS, проверьте это: http://stackoverflow.com/questions/3010840/loop-through-array-in-javascript – dekkard

Смежные вопросы