im пытается найти мою страницу для iframe, у которой нет атрибута 'current', установленного как 'current'.Почему мой if/else не работает
(текущий атрибут устанавливается, когда используется iframe, и сбрасывается после его загрузки).
Я пытаюсь кода, так что если есть 1 или более Iframes не установлен в качестве текущего, используйте один из них, ELSE, создать новый IFRAME, сделать некоторые другие вещи и использовать новый,
но этот код не совсем работает, я никогда не запускаю «предупреждение», поэтому я никогда не вхожу в часть ELSE, хотя я знаю, что у меня нет фреймов, у которых «текущий» атрибут не установлен:
var $fi = $visible.find(".file-info");
thisPreview = {};
var iframes = $('iframe').filter(function (index) {
return index == 0 || $('iframe').attr("current") == "no";
})
if(iframes.length >0){ //if one of the iframes hasnt got current set as current, use it
var theSuffix = iframes.attr('id').split('_').pop();
thisPreview[theSuffix] = $fi.prev(".image-preview");
$(this).closest(".file-upload-form").children(".variable-hidden").attr('value',theSuffix);
iframes.attr('current','current');
$(this).closest('.file-upload-form').attr('target','upload_target_'+theSuffix);
}
else{//else, create a new iframe, quick!
var count = $('[id^="upload_target_"]').length();
alert(count);
var countPlus1 = count+1;
iframe = $('<frame>').attr({'id':'upload_target_'+countPlus1,'name':'upload_target_'+countPlus1,'current':'current'}).addClass('upload-target');
iframe.appendTo($('#container'));
thisPreview[countPlus1] = $fi.prev(".image-preview");
$(this).closest(".file-upload-form").children(".variable-hidden").attr('value',countPlus1);
$(this).closest('.file-upload-form').attr('target','upload_target_'+countPlus1);
}
Эта функция фильтра сверху выглядит подозрительной. Возможно, вы должны использовать '$ (this)' (выберите текущий элемент, который будет протестирован для фильтрации) вместо '$ ('iframe')' (выберите каждый iframe на странице). Еще лучше, просто используйте 'this.getAttribute ('current') == 'no'' – andytuba