0

申し訳ありませんが、これは新しい質問ではないかもしれませんが、私はJSが初めてで、これに関する具体的な例はありませんでした.

function find(param){            
        $.each(array,function(i,elem){              
            if(elem.id==param){
                return i;
            }
        })
        return null;
    }
//after calling this function i want to perform actions based on result
$(document).on("click","#elem",function(){
      //want to make this part synchronous
      $.when(i=find(param1)).then(function{
      if(i==null)
          {//do something
          }
      else{//do something
          }
})
}

私は検索関数の戻り値に基づいてアクションを実行したい. また、条件は検索関数が終了した後にのみチェックする必要があります.

4

1 に答える 1

1

find 関数は常に null を返します。

$.each(array,function(i,elem){              
    if(elem.id==param){
        return i;   //this is each iteration callback scope not find function scope
    }
})

検索関数は次のようになります。

function find(param){
    var matched=null;            
    $.each(array,function(i,elem){              
        if(elem.id==param){
            matched=i;
        }
    })
    return matched;
}

これがお役に立てば幸いです。

于 2013-09-30T06:33:41.113 に答える