JavaScript 如何检查被点击的元素是否为div

JavaScript 如何检查被点击的元素是否为div

您是否曾经使用过模态框或在网站上看到过它?当您在模态框外点击时,它会关闭模态框。在这种情况下,我们必须检测用户是否点击了模态框元素内部或外部。如果用户点击了模态框元素外部,我们需要关闭模态框元素。

在本教程中,我们将学习不同的方法来检测div元素上的点击事件。

使用onClick属性来检查被点击的元素是否为div

在HTML中,我们可以为任何HTML元素添加onClick属性,并将其赋予函数表达式。用户单击特定的HTML元素时会调用分配的函数。

语法

用户可以使用下面的语法来将onClick属性与div元素一起使用,以检查被点击的元素是否为div。

<div onClick = "clickFunction()">This is a div!</div>
<script>
   function clickFunction() {

      // perform some operation on click
   }
</script>

在上面的语法中,当用户点击div元素时,将调用一个clickFunction() JavaScript函数。

示例

在下面的示例中,我们创建了一个div元素并给它一些CSS样式。之后,我们按照语法添加了onClick属性到div中,并将clickFuction()表达式赋给了它。

用户可以点击div并看到结果。此外,他们可以点击div元素外部,观察到网页上没有任何变化。

<html>
<head> 
   <style>
      div {
         height: 300px;
         width: 300px;
         background-color: red;
         font-size: 3rem;
      }
   </style>
</head>
<body>
   <h3>Using the<i> onClick attribute </i> to check if the clicked element is div or not.</h2>
   <div onClick = "clickFunction()"> This is a div! </div>
   <p> Please click anywhere in the above div</p>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");

      // calling the function when the user clicks on the div element
      function clickFunction() {
         output.innerHTML += "Click Triggered on the div element! <br/>";
      }
   </script>
</body>
</html>

在div元素上使用addEventListner()方法

addEventListner()方法允许我们在特定的HTML元素上添加事件。在JavaScript中,我们可以通过id访问HTML元素并添加事件监听器。

这里,我们将’click’作为addEventListner()方法的第一个参数传递,因为我们需要检测div元素上的点击事件。我们将回调箭头函数作为第二个参数传递,当点击事件在特定的div元素上触发时,该函数将被调用。

语法

用户可以按照以下语法使用addEventListner()方法来检测对div的点击。

<div id = "testDiv"> This is a div! </div>
<script>
   let testDiv = document.getElementById("testDiv");
   testDiv.addEventListener("click", () => {

      // div is clicked!
   });
</script>

在上述语法中,我们只在具有id“testDiv”的div上检测点击事件。 示例: 在这个示例中,我们创建了一个div元素,并使用JavaScript中的id来访问它。之后,通过click事件使用 addEventListner() 方法来调用回调函数,当用户点击div元素时。

<html>
<head>
   <style>
      div {
         height: 100px;
         width: 500px;
         background-color: lightblue;
         font-size: 1rem;
      }
   </style>
</head>
<body>
   <h3>Using the <i> addEventListener method </i> to check if the clicked element is div.</h3>
   <div id = "testDiv"> This is a div! </div>
   <p> Please cick anywhere in the above div </p>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");

      // access the div by id
      let testDiv = document.getElementById("testDiv");

      // add event listener to the div element
      testDiv.addEventListener("click", () => {
         output.innerHTML += "You have clicked on the div element and detected it using addEventListener! </br>"; 
      });
   </script>
</body>
</html>

使用 instanceof 运算符来检查被点击的元素是否是 div 元素

instanceof 运算符允许开发者检查元素或变量是否是对象或接口的实例。在 JavaScript 中,HTMLDivElement 是一个接口,我们可以检查任何元素是否属于 HTMLDivElement。

在这里,我们将在文档的所有 HTML 元素上添加一个点击事件,并检查被点击的元素是否是 HTMLDivElement 的一个实例。如果返回 true,那么被点击的元素就是 div 元素。

语法

用户可以按照以下语法使用 instanceof 运算符来检查被点击的元素是否是 div 元素。

window.addEventListener("click", function (event) {
   let clickedElement = event.target;
   let isDiv = clickedElement instanceof HTMLDivElement;
   if (isDiv) {

      // div element is clicked
   }
});

我们在上面的语法中为整个窗口添加了事件监听器。event.target返回被点击的元素,我们检查点击的元素是否是HTMLDivElement的实例。

实例

下面的示例包含了多个div和其他HTML元素。在JavaScript中,我们为网页上的点击事件添加了事件监听器。然后,我们对每次点击进行检查,判断点击的元素是否是div。

当用户点击任何div元素时,下面的示例会打印一条消息。

<html>
<head>
   <style>
      div {
         height: 100px;
         width: 500px;
         background-color: lightblue;
         font-size: 1rem;
         margin: 20px;
      }
   </style>
</head>
<body>
   <h3>Using the <i> instanceof operator </i> to check if the clicked element is div or not.</h3>
   <div>Hello, users!</div>
   <div> Welcome to TutorialsPoint! </div>
   <div> JavaScript is easy to learn! </div>
   <p id="output"></p>
   <script>
      let output = document.getElementById("output");

      // add event listener on the whole window
      window.addEventListener("click", function (event) {
         let clickedElement = event.target;

         // check if the clicked element is a div
         let isDiv = clickedElement instanceof HTMLDivElement;
         if (isDiv) {
            output.innerHTML += "You have clicked the div element, and its inner HTML is " + clickedElement.innerHTML + "<br/>";
         }
      });
   </script>
</body>
</html>

我们已经学习了三种方法来检测HTML div元素的点击事件。前两种方法检测特定div元素的点击事件。如果用户需要检测网页上每个div元素的点击事件,他们应该使用第三种方法,使用instanceof运算符。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程