2016-11-12 74 views
0

我需要使用indexOf()window.open產生的圖片:.indexOf()和window.open

  • 我的運動員的名字,並
  • 他們的照片,並
  • 短的生物。

我無法讓我的全局變量正常工作。

當我點擊表中某個運動員的名字時,我得到一個新的屏幕,但它說undefined應該顯示運動員的名字。

外部JavaScript:

我的全局變量和我在製作窗口的嘗試。

function teamStats(id) { 
    var myWin = window.open("","", "height=200, width=500"); 
    var q = athleteNames.indexOf(id);myWin.document.write(
    "<p><b>Name</b> - " + athleteNames[q] + </p>"); 
} 

var athleteNames = ["Michael Phelps","Nathan Adrian", 
    "Cody Miller","Ryan Murphy","Simone Manuel","Kathleen Baker", 
    "Dana Vollmer","Lilly King"]; 
var athleteIds = ["MP","NA","CM","RM","SM","KB","DV","LK"]; 

我的HTML代碼

我的代碼底部的只是一個樣本。我有表格,main,div和腳本的開始標籤。

 <td id="LK" onclick="teamStats(id)">Lilly King</td> 
     <td>19</td> 
     <td>5'4"</td> 
     <td>154</td> 
     <td> 
      <span style="color:gold">Gold</span> Women's 4x100m medley <br> 
      <span style="color:gold">Gold</span> Women's 100m backstroke <br> 
     </td> 
     </tr> 
    </table> 
    </main> 
</div> 
<script> 
    teamStats(); 
</script> 
+0

您可以編輯代碼來着?不確定您的teamStats函數結束於何處 – HenryDev

+0

傳遞給您的團隊統計功能的參數「id」是什麼? – 108

+0

我猜想這是第二個數組'athleteIds'中的'id'。如果是這種情況,請嘗試'var index = athleteIds.indexOf(id); var name = athleteNames [index];' – 108

回答

1

1)你應該重組你的「數據庫」 - 把所有的數據放在一個變量中。

2)獲取對象的屬性來得更快,然後indexOf

的Javascript

var athletes = { 
    MP: { // <- property is ID of athlete in your "database" 
     name: "Michael Phelps", // <- fileds of data about your athlete 
     pic: "http://placehold.it/350x150", 
     bio: "Info about Michael Phelps" 
    }, 
    NA: { 
     name: "Nathan Adrian", 
     pic: "http://placehold.it/350x150", 
     bio: "Info about Nathan Adrian" 
    } 
}; 
function teamStats(id) { 
    var athlete = athletes(id); 
    var myWin = window.open("","", "height=200, width=500"); 
    myWin.document.write("<p><b>Name</b> - " + athlete.name + "</p>" + 
     "<img src='" + athlete.pic + "' />" + 
     "<p>" + athlete.bio + "</p>"); 
} 

HTML

<span id="MP" onclick="teamStats(id)">Michael Phelps</span> 
<span id="NA" onclick="teamStats(id)">Nathan Adrian</span>