我知道以前有人問過這個問題,但我的情況似乎有點不同
我有兩個 js 檔案,一個用于邏輯,一個用于包含有關電影資料的物件
我的第一個檔案看起來像這樣
var movieTitle = document.getElementById("movieTitle");
var rating = document.getElementById("rating");
var movieYear = document.getElementById("movieYear");
var movieDuration = document.getElementById("movieDuration");
var actorName = document.getElementById("actorName");
var actorRole = document.getElementById("actorRole");
var actorNameI = document.getElementById("actorName2");
var actorRoleII = document.getElementById("actorRole2");
var testClick = document.getElementById("testClick");
var movie = movieI;
movieTitle.innerHTML = "Title: " movie.title;
movieYear.innerHTML = "release Year: " movie.releaseYear;
movieDuration.innerHTML = "Duration: " movie.duration;
actorName.innerHTML = "Name: " movie.actors[0].name;
actorRole.innerHTML = "Role: " movie.actors[0].role;
actorNameI.innerHTML = "Name: " movie.actors[1].name;
actorRoleII.innerHTML = "Role: " movie.actors[1].role;
rating.innerHTML = "Rating: " movie.rating;
testClick.addEventListener("click", function(){
var movie = movieII
})
我從中獲取物件的檔案看起來像這樣
var movieI = {
title: "Titanic",
releaseYear: 1997,
rating: "PG21",
duration: "3 hours",
actors: [
{
name: "leonardo dicaprio",
role: "role goes here"
},
{
name: "kate winslet",
role: "role goes here"
},
]
};
var movieII = {
title: "Wolf of wall street",
releaseYear: 2013,
rating: "PG18",
duration: "2H 30M",
actors: [
{
name: "leonardo dicaprio",
role: "role goes here"
},
{
name: "jonah hill",
role: "role goes here"
},
]
};
在我的第一個 js 檔案中,我有以下功能
testClick.addEventListener("click", function(){
movie = movieII
})
這應該修改電影變數的值并將其設定為movieII,以便它可以從我的物件檔案中切換/訪問第二個物件(movieII),但它似乎不起作用。
uj5u.com熱心網友回復:
你有沒有嘗試在這個專案中使用函式和引數?
這是js中的檔案 函式
uj5u.com熱心網友回復:
您的問題是更新物件不會更改 HTML 中已經顯示的內容,您需要使用新資訊更新您的 HTML,但前提是它在變數中發生更改。
您可以做到這一點(就像您在代碼中所做的那樣),或者只是創建一個您每次都可以呼叫的函式,這將幫助您避免重復代碼。
這是您可以做到的一種方法:
//Titanic
let movieI = {
title: "Titanic",
releaseYear: 1997,
rating: "PG21",
duration: "3 hours",
actors: [
{
name: "leonardo dicaprio",
role: "role goes here"
},
{
name: "kate winslet",
role: "role goes here"
},
]
};
let movieII = {
title: "Wolf of wall street",
releaseYear: 2013,
rating: "PG18",
duration: "2H 30M",
actors: [
{
name: "leonardo dicaprio",
role: "role goes here"
},
{
name: "jonah hill",
role: "role goes here"
},
]
};
let actorsBox = document.getElementById("actos-box");
let movieTitle = document.getElementById("movieTitle");
let rating = document.getElementById("rating");
let movieYear = document.getElementById("movieYear");
let movieDuration = document.getElementById("movieDuration");
let actorName = document.getElementById("actorName");
let actorRole = document.getElementById("actorRole");
let actorNameI = document.getElementById("actorName2");
let actorRoleII = document.getElementById("actorRole2");
let testClick = document.getElementById("testClick");
let movie = movieI;
updateMovie();
testClick.addEventListener("click", function(){
movie = movieII
updateMovie();
})
function updateMovie(){
movieTitle.innerHTML = "Title: " movie.title;
movieYear.innerHTML = "release Year: " movie.releaseYear;
movieDuration.innerHTML = "Duration: " movie.duration;
actorName.innerHTML = "Name: " movie.actors[0].name;
actorRole.innerHTML = "Role: " movie.actors[0].role;
actorNameI.innerHTML = "Name: " movie.actors[1].name;
actorRoleII.innerHTML = "Role: " movie.actors[1].role;
rating.innerHTML = "Rating: " movie.rating;
}
另外,我強烈建議您不要使用 var,因為它可能會做一些您可能不想做的奇怪事情。
看看這個以了解更多關于 let 變數的資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/506831.html
標籤:javascript 功能 目的
上一篇:IF-資料幀R中樞軸更長的函式
下一篇:無法將字串作為函式輸入