我正在检查是否单击了<ul>
标记中存在图像的按钮。为此,我正在使用此功能:
function check_image_exists(){
$('ul#show_uploaded_images').each(function() {
if ($(this).find('img').length) {
return true;
}else{
return false;
}
});
}
现在,如果我把这个东西放在点击功能中,它就可以了......
function insert_product(){
$('ul#show_uploaded_images').each(function() {
if ($(this).find('img').length) {
alert("Image found");
}else{
alert("Not found");
}
});
}
但是,如果我将两者分开并尝试仅使用返回值来决定我的条件,那么它就不起作用了。 :
function check_image_exists(){
$('ul#show_uploaded_images').each(function() {
if ($(this).find('img').length) {
return true;
}else{
return false;
}
});
}
function insert_product(){
var image_exist = check_image_exists();
if(image_exist == false){
alert("not found")
}else{
do the rest.....
}
}
答案 0 :(得分:1)
问题是你试图在each
回调中返回一个值,但这没有任何意义,所以返回值只是被吞下。
有一种更简单的方法可以做到这一点。只需检查.find()
是否返回任何元素:
var thereAreImages = $('ul#show_uploaded_images').find('img').length !== 0;
或者将其打包在函数中:
function check_image_exists() {
return $('ul#show_uploaded_images').find('img').length !== 0;
}
function insert_product() {
if (check_image_exists()) {
// do the rest...
} else {
console.log('not found');
}
}
答案 1 :(得分:0)
注意:基于您询问2个功能,
function insert_product() {
var image_exist = check_image_exists();
if (image_exist) {
alert("here")
} else {
alert("not found")
}
}
function check_image_exists() {
return $('ul#show_uploaded_images').has("img").length;
}
insert_product();
注意:您可以直接检查$('ul#show_uploaded_images').has("img").length