如何使用 JavaScript 文件中的变量到我的 HTML 文件?

How do I use a variable from a JavaScript file to my HTML file?

提问人:Jorge Martin Apresa Perez 提问时间:7/12/2023 最后编辑:Jorge Martin Apresa Perez 更新时间:7/12/2023 访问量:49

问:

我是新手,需要帮助。我的 javascript 文件中有一个变量,我想响应 HTML 文件中的按钮。单击按钮后,我希望我的按钮调用变量,并且会出现一条新消息。

该项目的目标是在单击按钮后生成新的随机消息。

这是下面的 JavaScript

const messages = [
  "Hello!",
  "How are you doing today?",
  "Have a great day!",
  "What's up?",
  "Hope you're doing well!",
  "Take care!",
  "Enjoy your day!",
  "Stay positive!",
  "Sending you good vibes!",
  "Smile and be happy!",
  "Did I do this right?",
  "I wonder",
  "Hello World",
  "Hey There",
  "Elijah is awesome",
  "arrays are powerful",
  "Javascript is really hard",
  "HTML and CSS are easy"
];

// Function to generate a random index
function getRandomIndex(array) {
  return Math.floor(Math.random() * array.length);
}

// Generate a random message
function generateRandomMessage() {
  const randomIndex = getRandomIndex(messages);
  const randomMessage = messages[randomIndex];
  return randomMessage;
}


// Call the function to generate a random message

const randomMessage = generateRandomMessage();

console.log(randomMessage);


var newContent = randomMessage;
var contentHolder = document.getElementById('content-holder');

contentHolder.innerHTML = newContent;
<p id="content-holder">
</p>
<button ondblclick="newContent">click</button>

我尝试使用“onclick”属性,但没有成功

我尝试使用 getElementById 但没有成功,也许我做得不对?

我试着在谷歌上搜索它,最终到达了我开始的地方......失去

我不知道该尝试什么,我刚刚开始我的编码之旅,迷路了。有人可以帮忙吗?

javascript html 变量 dom onclick

评论

0赞 j08691 7/12/2023
您是否检查过浏览器的控制台是否有错误消息?我也在您的 HTML 中没有看到任何按钮,只有一个段落
0赞 freedomn-m 7/12/2023
不在函数中的代码(获取消息然后更新 DOM 的位)需要位于函数中。然后你从函数外部调用该函数(因为你有 const randomMessage = generateRandomMessage();) - 然后你可以将你的新函数添加到onclick=setRandomMessage()

答:

0赞 Arsen Mkrtumian 7/12/2023 #1

const messages = [
    "Hello!",
    "How are you doing today?",
    "Have a great day!",
    "What's up?",
    "Hope you're doing well!",
    "Take care!",
    "Enjoy your day!",
    "Stay positive!",
    "Sending you good vibes!",
    "Smile and be happy!",
    "Did I do this right?",
    "I wonder",
    "Hello World",
    "Hey There",
    "Elijah is awesome",
    "arrays are powerful",
    "Javascript is really hard",
    "HTML and CSS are easy"
];

// Function to generate a random index
function getRandomIndex(array) {
    return Math.floor(Math.random() * array.length);
}

// Generate a random message
function generateRandomMessage() {
    const randomIndex = getRandomIndex(messages);
    const randomMessage = messages[randomIndex];
    return randomMessage;
}


// Call the function to generate a random message

function postMes (){
    const randomMessage = generateRandomMessage();


    var newContent = randomMessage;
    var contentHolder = document.getElementById('content-holder');

    contentHolder.innerHTML = newContent;
}
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<p id="content-holder">
</p>
<button onclick="postMes()">click</button>

<script src="script.js"></script>
</body>
</html>

只需将发布消息的部分放在函数中即可

评论

0赞 Jorge Martin Apresa Perez 7/12/2023
兄弟!这就像魔术一样起作用。非常感谢!
0赞 Jorge Martin Apresa Perez 7/12/2023
那么解决方案是将其包装在函数 postMes() 中,然后使用 onclick 属性调用该函数?
0赞 Arsen Mkrtumian 7/12/2023
@JorgeMartinApresaPerez没问题,祝你学习编程好运))
0赞 Arsen Mkrtumian 7/12/2023
@JorgeMartinApresaPerez 如果要调用一段 javascript 代码,则需要将该段代码放入函数中并调用它。您可以通过多种方式调用它,可以使用示例中的 onclick,也可以使用事件
0赞 Jorge Martin Apresa Perez 7/12/2023
谢谢Arsen MKrtumian先生,我非常感激。棒!
1赞 Jan 7/12/2023 #2

你只需要稍微重新排列你的代码。

const messages = [
  "Hello!",
  "How are you doing today?",
  "Have a great day!",
  "What's up?",
  "Hope you're doing well!",
  "Take care!",
  "Enjoy your day!",
  "Stay positive!",
  "Sending you good vibes!",
  "Smile and be happy!",
  "Did I do this right?",
  "I wonder",
  "Hello World",
  "Hey There",
  "Elijah is awesome",
  "arrays are powerful",
  "Javascript is really hard",
  "HTML and CSS are easy"
];

// Function to generate a random index
function getRandomIndex(array) {
  return Math.floor(Math.random() * array.length);
}

// Generate a random message
function generateRandomMessage() {
  const randomIndex = getRandomIndex(messages);
  const randomMessage = messages[randomIndex];
  var newContent = randomMessage;
  var contentHolder = document.getElementById('content-holder');

  contentHolder.innerHTML = newContent;
}
<p id="content-holder">
</p>
<button onclick="generateRandomMessage()">click</button>

评论

0赞 Jorge Martin Apresa Perez 7/12/2023
谢谢!所以,你在那里所做的是将底部变成一个函数,以便能够调用 gerneratRandomMessage() ?
0赞 Jan 7/12/2023
是的,没错。除了将某些部分转移到 JS 中的 generateRandomMessage() - 函数之外,我还将您的函数添加到 HTML 中的按钮中,以便单击按钮 () 调用函数 ()。onclickgenerateRandomMessage()
0赞 Jorge Martin Apresa Perez 7/12/2023
非常感谢Jan先生
0赞 Jan 7/12/2023
别客气。但是,请避免“谢谢”或类似的评论。我们在这里使用技术写作。如果我的回答对您有帮助,您可以使用点赞按钮。