我有这个jquery
$("#Nameupload").change(function(e) {
if ($(this).val()!="") {
$(".PhotShow").slideDown(500,function(){
$('html, body').animate({ scrollTop: 1000}, 900);
});
var filename = $(this).val();
var extension = filename.replace(/^.*\./, '');
if (extension == filename) {
extension = '';
} else {
extension = extension.toLowerCase();
}
if (extension!="png" || extension!="jpg" ) {
$(".PhotShow").html("Some text and markup");
}
readURL(this);
}
});
所以我想在这里做的是检查文件的扩展名,但即使我把
alert(extension);
它返回" jpg" 但是这段代码仍在运作
$(".PhotShow").html("Some text and markup");
可能是什么问题?
答案 0 :(得分:2)
问题在于if
语句中的逻辑。如果文字不是png
而且不是jpg
,那么您的条件将始终被命中,因为这些语句中至少有一个始终为真。将您的逻辑条件更改为&&
:
if (extension != "png" && extension != "jpg") {
$(".PhotShow").html("Some text and markup");
}
另请注意,您可以稍微清除代码,以验证文件名是否存在(它始终位于change
事件中),以便可以删除检查值的if
条件。另请注意,您可以split()
.
的值pop()
和$("#Nameupload").change(function(e) {
$(".PhotShow").slideDown(500, function() {
$('html, body').animate({
scrollTop: 1000
}, 900);
});
var extension = $(this).val().split('.').pop().toLowerCase();
if (extension != "png" && extension != "jpg") {
$(".PhotShow").html("Some text and markup");
} else {
readURL(this);
}
});
数组的最后一个元素作为获取扩展的更整洁的方式。试试这个:
void queueAdd (queue *q, char* new){
q->addr[q->tail] = (char*)malloc(sizeof(char));