我正在遍历 div 来查找一系列 div 上的单个“事件”类。然后我想从该 div 获取数据属性。我得到了数据属性,但似乎无法使用 return
将其传递出函数。 。它记录 undefined
.
const getPostcardLink = () => {
console.log('getPostcardLink()...');
$('.postcard').each(function () {
if ($(this).hasClass('active')) {
const postcard = $(this).data('postcard');
console.log(postcard);
return postcard;
}
return 'error';
});
};
const getStampLink = () => {
console.log('getStampLink()...');
$('.stamp').each(function () {
if ($(this).hasClass('active')) {
const stamp = $(this).data('stamp');
console.log(stamp);
return stamp;
}
return 'error';
});
};
function updatePostcard() {
const postcard = `images/_${getPostcardLink()}.jpg`;
const stamp = `images/_${getStampLink()}.jpg`;
console.log(`${postcard} with ${stamp}`);
}
$(document).ready(() => {
updatePostcard();
});
日志返回...
getPostcardLink()...
p1
getStampLink()...
s1
images/_undefined.jpg with images/_undefined.jpg
最佳答案
使用.filter()
和 getStamp()
处的相同模式
const getPostcardLink = () => {
console.log('getPostcardLink()...');
let elems = $('.postcard').filter(function () {
return $(this).hasClass('active')
});
if (elems.length) {
const postcard = elems.data('postcard');
console.log(postcard);
return postcard
}
return "error"
};
function updatePostcard() {
let cLink = getPostcardLink();
let sLink = getStampLink();
if (cLink !== "error") const postcard = `images/_${cLink}.jpg`;
if (sLink !== "error") const stamp = `images/_${sLink}.jpg`;
if (postcard && stamp) console.log(`${postcard} with ${stamp}`);
}
关于javascript - ES6函数返回 `undefined`而不是预期的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634931/