javascript - 尝试使用 Javascript 更改元素的 id

标签 javascript html css

每当我将鼠标悬停在导航栏中的一个选择上时,我都试图更改一个 div 的 ID。我只是看不出我的问题在哪里。当我检查页面并将鼠标悬停在导航栏选择上时,div id 没有改变。

这是我的javascript:

// Run JS after contents are loaded
document.addEventListener("DOMContentLoaded", initialiseWebPage);


function initialiseWebPage() //Loads DOM content
{
  var navImage = document.getElementById("picture");

  // Variables for each Nav Selection
  const home = document.getElementById("Home");
  const portfolio = document.getElementsById("Portfolio");
  const services = document.getElementsById("Services");
  const achievements = document.getElementsById("Achievements");
  const hobbies = document.getElementsById("Hobbies");

// Event listeners
home.addEventListener("mouseover", changeIdHome);
portfolio.addEventListener("mouseover", changeIdPortfolio);
services.addEventListener("click", changeIdServices);
achievements.addEventListener("mouseover", changeIdAchievements);
hobbies.addEventListener("mouseover", changeIdHobbies);


function changeIdHome()
{
  navImag.id = "Home";
}

function changeIdPortfolio()
{
  navImage.id = "Portfolio";
}

function changeIdServices()
{
  navImage.id = "Services";
}

function changeIdAchievements()
{
  navImage.id = "Achievements";
}

function changeIdHobbies()
{
  navImage.id = "Hobbies";
}

}

这是我的 HTML 的开头:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>My Website</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    <script src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
    <script src="Script.js"></script> <!-- Link document to javascript file -->
    <link href="style.css" rel="stylesheet">
    <link rel="stylesheet" href="https://m.w3newbie.com/you-tube.css">
</head>

<body>

    <!-- Navigation -->

    <div class="container-fluid">
        <div id="picture">

我非常确定我已将我的 js 正确链接到我的 html。

正如您在 HTML 底部看到的那样,我尝试播放的 div 的 ID 为“图片”。

最佳答案

我不能 100% 证实这一点,但是,在您使用的许多常量上,document.getElementsById 应该是 document.getElementById

这是修改后的 JavaScript 代码

document.addEventListener("DOMContentLoaded", initialiseWebPage);


function initialiseWebPage() //Loads DOM content
{
  var navImage = document.getElementById("picture");

  // Variables for each Nav Selection
  const home = document.getElementById("Home");
  const portfolio = document.getElementById("Portfolio");
  const services = document.getElementById("Services");
  const achievements = document.getElementById("Achievements");
  const hobbies = document.getElementById("Hobbies");

// Event listeners
home.addEventListener("mouseover", changeIdHome);
portfolio.addEventListener("mouseover", changeIdPortfolio);
services.addEventListener("click", changeIdServices);
achievements.addEventListener("mouseover", changeIdAchievements);
hobbies.addEventListener("mouseover", changeIdHobbies);


function changeIdHome()
{
  navImag.id = "Home";
}

function changeIdPortfolio()
{
  navImage.id = "Portfolio";
}

function changeIdServices()
{
  navImage.id = "Services";
}

function changeIdAchievements()
{
  navImage.id = "Achievements";
}

function changeIdHobbies()
{
  navImage.id = "Hobbies";
}

}

希望对您有所帮助!

关于javascript - 尝试使用 Javascript 更改元素的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57532885/

相关文章:

javascript - 如何检测 HTML5 video 标签支持的视频格式?

javascript - 页面加载时使用已选定内容的 MixItUp 过滤器

javascript - 是否有非可视化的 HTML 标签?

html - 更多 float 权利问题

javascript - 在保存之前使用 JQuery/Javascript 预处理在线表单

javascript - 将 HTML 添加到元素的末尾。没有错误;没有添加 HTML

javascript - 空 jquery 元素

javascript - React 如何更新他的状态?

javascript - 将事件添加到 javascript 生成的日历

javascript - html元素不显示