我正在尝试为多个用户构建个人资料页面,其中包括存储在服务器上的个性化照片/项目
。这些项目使用用户名进行标记/命名
。用户有一个 FirstName
和 LastName
,并且可以选择使用 PreferredName
。
最初,如果存在首选名称,则使用首选名称(而不是名字)对项目进行命名。 (例如:Fname:Robert;Lname:Smith;Pname:Bobby;FileName = SmithBobby.file
)
不幸的是,用户现在可以将个人资料中的姓名从 PreferredName 更改回 FirstName
,导致大部分个人资料查找不正确的文件(项目实际上名为 SmithBobby.file
,而配置文件正在查找 SmithRobert.file
。)
话虽如此,我想使用两种命名约定(FirstLast.file
和 PreferredLast.file
)检查该项目,如果两者都不存在,则应默认使用默认/通用照片。 (default.file
)
下面的示例是我目前如何检查用户是否有简历和个人资料图片的文件。如果不存在 CV,则会从页面中删除该元素。如果图像不存在,则默认为 default.jpg
。
if (($.PageData.PreferredName == "") || ($.PageData.PreferredName == null)) {
$("#Name").text($.PageData.FirstName + " " + $.PageData.LastName);
document.title = ($.PageData.FirstName + " " + $.PageData.LastName + " | Profile");
$("#BioPageTitle").text($.PageData.FirstName + " " + $.PageData.LastName);
} else {
$("#Name").text($.PageData.PreferredName + " " + $.PageData.LastName);
document.title = ($.PageData.PreferredName + " " + $.PageData.LastName + " | Profile");
$("#BioPageTitle").text($.PageData.PreferredName + " " + $.PageData.LastName);
}
//FILENAME BUILD
var file_name = ($.PageData.LastName + $.PageData.FirstName);
var second_fname = ($.PageData.LastName + $.PageData.PreferredName);
file_name = file_name.replace(/[^0-9a-z]/gi, '');
second_fname = second_fname.replace(/[^0-9a-z]/gi, '');
var vita = $('#Vita');
var vita_url = "vita/" + file_name + ".pdf";
var second_vitaURL = "vita/" + second_fname + ".pdf";
var VitaLink = $("<a>").attr({
href: vita_url,
target: '_blank'
}).html("<strong>Curriculum Vitae</strong>");
$.get(vita_url)
.done(function() {
vita.html(VitaLink);
}).fail(function() {
vita.remove();
});
/*PHOTO BUILD/CHECK */
//PROFILE PICTURE
var img = $('#ProfilePicture');
var default_url = "photos/default.jpg";
var img_url = "photos/" + file_name + ".jpg";
img.error(function() {
$(this).attr('src', default_url);
});
img.attr('src', img_url);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
最佳答案
如果第一个链接失败,您应该能够通过检查第二个链接来扩展当前检查第一个链接的功能。如果第二个也失败,那么您可以删除该条目。
$.get(vita_url)
.done(function() {
vita.html(VitaLink);
}).fail(function() {
$.get(second_vitaURL)
.done(function() {
//modify the VitaLink with the correct url, if this doesn't work make a separate vitaLink type variable
VitaLink.attr('href', second_vitaURL);
vita.html(VitaLink);
}).fail(function() {
vita.remove();
});
});
关于javascript - 通过使用 jQuery/JS 检查两种不同的命名约定来检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295266/