javascript - 警报框触发后,"Undefined"出现在文档一侧

标签 javascript html button alert

我一直在制作一个网站,如果您单击一个按钮,就会弹出一个警报框。但在我单击按钮后,“未定义”一词出现在文档的一侧。

我这样做的方式是这样的:


<button onclick="run()">Click me</button>
<span id="no"></span>
<script>
function no() {
document.getElementById("no").innerHTML = alert("This is an alert box");
}
</script>

由于某种原因,在我单击按钮后,文档上出现“未定义”字样。正如您所看到的,如果您运行该代码片段,一旦您单击其中一个“购买”按钮,如果您向下滚动到产品页面的底部,您将在左侧看到“未定义”一词。我不应该使用这种方法吗?

function purchase() {
  document.getElementById("no").innerHTML = alert("Sorry, but we're all sold out! Try again later.");
}
<!DOCTYPE html>
<html>

<head profile="http://www.w3.org/2005/10/profile">
  <title>Buy stuff at a high price!</title>
  <link rel="icon" type="image/png" href="https://cdn.hipwallpaper.com/i/63/61/AykYVG.png">
</head>

<body>

  <style>
    center.mission {
      font-family: serrif;
      font-size: 180%;
      background-color: rgb(100, 200, 0);
      LINE-HEIGHT: 1;
    }
    
    body {
      background-color: rgb(196, 255, 196);
    }
  </style>


  <!--Our products-->
  <p>
    </br>
    <center class="products">
      <h1>OUR PRODUCTS</h1>
    </center>
    <center>
      <h3>NO RETURNS</h3>
    </center>
    <br/>
    <div id="column1">Single sheet 8.5"/11" printer paper
      <br/>
      <img src="https://www.backgroundsy.com/file/large/blank-paper-background.jpg" height="150px" width="350px" />
      <button onclick="purchase()">BUY NOW FOR $19.99</button>
    </div>
    <div id="column2">Single sheet 8.5"/11" printer paper(pre-crumpled)
      <br/>
      <center><img src="https://149351503.v2.pressablecdn.com/wp-content/uploads/2015/09/paper_71_closed.png" height="150px" width="200px" /></center>
      <button onclick="purchase()">BUY NOW FOR $34.99</button>
    </div>
    <div id="column3">Single CD-R disc, scratched
      <br/>
      <img src="https://i.redd.it/akbvkcw2xgmz.jpg" height="150px" width="250px" />
      <br/>
      <button onclick="purchase()">BUY NOW FOR $42.99</button>
    </div>
    <style>
      center.products {
        color: green;
        background-color: purple;
      }
      
      div {
        float: left;
        height: 200px;
        width: 200px;
        padding: 0 10px;
      }
      
      #column1 {
        background-color: lightgrey;
        width: 30%;
      }
      
      #column2 {
        background-color: grey;
        width: 30%;
      }
      
      #column3 {
        background-color: darkgrey;
        width: 30%;
      }
    </style>
    <div id="column4">Single toilet paper square for quarentine days
      <br/>
      <img src="https://photos1.blogger.com/blogger/7265/3234/1600/napkin.jpg" height="150px" width="250px" />
      <button onclick="purchase()">BUY NOW FOR $12.99</button>
    </div>
    <div id="column5">Single use toothpick
      <br/>
      <center><img src="https://sc02.alicdn.com/kf/HTB1sYpPQpXXXXcPXXXXq6xXFXXXu.jpg" height="150px" width="300px" /></center>
      <button onclick="purchase()">BUY NOW FOR $6.99</button>
    </div>
    <div id="column6">10cm dental floss
      <br/>
      <img src="https://upload.wikimedia.org/wikipedia/commons/5/53/Dental_floss_%28whole%29.jpg" height="150px" width="250px" />
      <br/>
      <button onclick="purchase()">BUY NOW FOR $339.99</button>
    </div>
    <style>
      center.products {
        color: green;
        background-color: purple;
      }
      
      div {
        float: left;
        height: 200px;
        width: 200px;
        padding: 0 10px;
      }
      
      #column4 {
        background-color: darkgrey;
        width: 30%;
      }
      
      #column5 {
        background-color: lightgrey;
        width: 30%;
      }
      
      #column6 {
        background-color: grey;
        width: 30%;
      }
    </style>

    <!--For click events-->
    <span id="no"></span>

</body>

</html>

有什么办法可以在不改变我的方法的情况下阻止这种情况发生吗?我很抱歉它太困惑了,它不适合在堆栈溢出片段创建器上运行。

注意:本网站并不具有专业性。事实上,它的设计很糟糕。这就是我使用 <center> 的原因属性。

最佳答案

javascript 中的 alert 方法没有返回值,在 javascript 中是 undefined

您正在将 span 内部 html 设置为该值

document.getElementById("no").innerHTML = alert("Sorry, but we're all sold out! Try again later.");

我很好奇你认为上面这行代码做了什么。

关于javascript - 警报框触发后,"Undefined"出现在文档一侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60821823/

相关文章:

c# - __doPostBack 未在 JavaScript 中定义

php - 如何将数据库/PHP 中的 PDF 文件嵌入 HTML

样式(宽度)属性中的php变量

JavaFx - 将两个 'setOnAction' 设置为同一个按钮

javascript - 防止外部源使用 Javascript 修改我的 HTML

javascript - 如何让两种不同的输入(一种用于移动设备,一种用于桌面设备)修改同一个变量?

javascript - JavaScript 中的最后一个 boolean 标志

html - 为什么不允许使用此 Doctype "DIV"?

确保页面已完全加载后,javascript单击按钮

java - 安卓 : Cannot cast from View to Button