次の関数があります。オブジェクトのリストを実行して、正しいものを返します。
function findLine(textElement,caretIndex){
jQuery.each(textElement.lines(), function() {
if(this.startIndex <= caretIndex && this.endIndex >= caretIndex) {
alert(this);
return this;
}
});
}
これで呼び出すとundefined
、見返りが得られます。
line = findLine(textElement,caretIndex);
alert(line);
奇妙なことにline = findLine(textElement,caretIndex);
、関数内でアラートを実行すると、発生して正しい結果が返されます。これthis
は正しい値ですが、関数の外側で 2 番目のアラートが発生すると、 が表示されますundefined
。
関数から値を返すときに何か問題が発生しているか、その値を変数に代入することに関係しています。ここで何が間違っていますか?