2017-09-15 20 views
0

私は、これは、与えられたリンクからビデオソースを取り出す関数であるjqueryの関数を返す「未定義」

var url = 'https://gfycat.com/DigitalComfortableFrigatebird'; 
var src = getvideo(url); 

ここで関数を呼び出しています。

function getvideo(url) { 
    var link; 
    $.ajax({ 
     url: url, 
     success: function(data) { 
      var html = $.parseHTML(data); 
      var vid = $(html).find("video"); 
      var len = vid.length; 

      if (len > 0) { 
       link = vid.find("#webmSource").attr('src'); 
       console.log(link); 

      } else { 
       console.log("No video found"); 
      } 

     } 
    }); 
return link;  
} 

機能が働きながら

は、リンク変数は

+0

'success'の中に' return'を入れようとしましたか? – NewToJS

+0

@NewToJSは動作しません。重複したリンクを確認してください。 –

+0

はい、私はまだ、未定義のままです –

答えて

0
$.ajax({ 
     url: url, 
     success: function(data) { 
      var html = $.parseHTML(data); 
      var vid = $(html).find("video"); 
      var len = vid.length; 

      if (len > 0) { 
       link = vid.find("#webmSource").attr('src'); 
       console.log(link); 

      } else { 
       console.log("No video found"); 
      } 

     } 
    }); 

は非同期関数で滞在「未定義」$.ajax({})コール外である

return link; 

、それが終了するのを待たないでしょう定義されていない値を返す

関連する問題