return 함수에서 매우 단순한 논리를 가졌지 만 예상대로 작동하지 않습니다. 물론 코드를 약간 길게 만들고 문제를 해결할 수는 있지만 가능한 한 작게하고 싶습니다. 보시다시피이 #mainContent에서 #pageTitle을 발견하면Coffeescript 3 진 if 문이 틀린 논리
#Return title if exists or false otherwise
getPageTitleFromMainContent = (mainContent) ->
mainContent.find('#pageTitle') ?.length ?= false
if y = (getPageTitleFromMainContent $("#mainContent"))
y.css color:red
, 그것이 빨간색해야한다 :
여기 내 코드입니다. 그러나 함수가 발견되면 #pageTitle을 반환하지 않고 .length를 반환합니다.
var getPageTitleFromMainContent, y;
getPageTitleFromMainContent = function(mainContent) {
var _ref, _ref1;
return (_ref = mainContent.find('#pageTitle')) != null ? (_ref1 = _ref.length) != null ? **_ref1 : _ref.length = false : void 0;**
};
if (y = getPageTitleFromMainContent($("#mainContent"))) {
y.css({
color: red
});
}
그리고 그것은 _ref : _ref.length = false : void 0;
하지 _ref**1** : _ref.length = false : void 0;
해야한다 : js2coffee.org에서
나는 코드로 컴파일되는 것을 알 수있다.
감사합니다!
요소가 존재하지 않으면 jquery는 빈 배열을 반환하고 싶지 않습니다. 거짓으로 돌아 가기를 원해. 또한, 내가 말했듯이, 값을 할당하지 않고 그것을 만드는 것이 좋을 것입니다. coffeescript는 매우 강력하며 그것을 사용하고 싶습니다. – ioanb7
제안 된 솔루션으로 내 대답을 업데이트했습니다. –