2016-09-24 68 views
0

https://github.com/rajien2/ItunesjQuery選擇在我的函數調用

嗨返回隨機「,

我一直在運行我的頭到現在過去一天一堵牆,這是一類項目,我走到外面如果你發現第一個視頻並彈出一個youtube窗口,那麼我的函數可以工作,如果你傳遞一個字符串到searchTube('bob'),目標是當你點擊封面藝術,現在我遇到的問題是我想傳遞歌曲的標題和藝術家的名字,但是我會隨機獲得「在我的迴歸中?現在我相信enter image description here這是由於空格,因爲當我只使用標題,並選擇一個標題,有空格相同的結果......任何想法如何我可以解決這個問題?

DevTools results

//Do Not Modify the getMusic function 
function getMusic() { 
    var artist = document.getElementById('artist').value; 
    itunes.getMusicByArtist(artist).then(drawSongs); 
} 







function drawSongs(songList) { 
    console.log(songList); 

    var container = $('#music-container') 
    container.html('') 
    songList.forEach(function (song) { 

let myItem = song.title 
console.log(myItem) 


     var card = ` 
<div class='col-md-6'> 
    <p class='h4 text-center' href='${song.url}'>${song.title}</p> 
    <p class='h5 text-center' href='${song.url}'>${song.artist}</p> 
      <img onclick=searchTube(${song.title} ${song.artist}) class='center-block' src='${song.albumArt}'> 
      <div> 
      <audio controls class='center-block'> 
       <source src="${song.preview}" type="audio/mpeg"> 
       Your browser does not support the audio element. 
      </audio> 
      </div> 
</div> 
    ` 

     container.append(card) 
     myInfo = '' 
    }) 
} 

的Youtube searchTube功能

function tplawesome(e, t) { res = e; for (var n = 0; n < t.length; n++) { res = res.replace(/\{\{(.*?)\}\}/g, function (e, r) { return t[n][r] }) } return res } 


function searchTube(item) { 

    // get fourm input 
    q = item //$('#query').val() 

    //run request on api 
    $.get(
     "https://www.googleapis.com/youtube/v3/search", { 
      part: 'snippet', 
      type: 'video', 
      q: q, 
      maxResults: 1, 
      order: 'viewCount', 
      key: 'AIzaSyD9YPjBHHTiMX_MpqKySSwIIGlxL1zuD9o' 
     }, 
     function (data) { 
      console.log(data.items); 
      $.each(data.items, function (index, item) { 
       $.get('item.html', function (data) { 
        $('#results').append(tplawesome(data, [{ 'title': item.snippet.title, 'videoid': item.id.videoId }])) 
       }) 
       //$('#results').append(item.id.videoId + ' ' + item.snippet.title + '<br>') 
      }) 
      //$('results').append(item.id.videoId + ' ' + data.snippet.title + '<br>'); 


      $('#my_popup').popup({ 
       opacity: 0.3, 
       transition: 'all 0.3s' 
      }); 


     } 
    ); 
} 


//searchTube(test); 

回答

1

你是不是正確逃避你的代碼的searchTube(${song.title} ${song.artist})一部分。既然你想傳遞一個字符串作爲方法參數,你應該把這個參數表示爲一個字符串。通過將您的參數封入''來完成此操作。

您將結束:

<img onclick="searchTube('${song.title} ${song.artist}')" class='center-block' src='${song.albumArt}'> 
+0

呃哇!我怎麼錯過了!非常感謝你! – Mal229

1

我覺得是因爲你離開了引號出你的HTML,瀏覽器嘗試添加他們明智地。 (當它到達的空間,它不知道你實際上意味着更多的事情是屬性值的一部分。)

取而代之的是:

<img onclick=searchTube(${song.title} ${song.artist}) 

試試這個:

<img onclick="searchTube('${song.title} ${song.artist}')" 
+0

呃哇!我怎麼錯過了!非常感謝你! – Mal229

相關問題