我正在从数组生成列表。我如何知道我在 JavaScript 中单击了哪个元素?

javascriptweb developmentfront end technology

使用数组可以将多个值保存在单个变量中。相比之下,变量只能容纳一个值。数组中的每个项目都有一个与之关联的数字,您可以使用该数字访问它,这称为数字索引。JavaScript 中的数组从索引零开始,可以使用各种操作进行更改。

addEventListener() 方法

addEventListener() 是 JavaScript 中的一种方法,它允许为元素分配事件处理程序,该处理程序将在指定事件发生时执行。这可以包括鼠标点击、表单提交、键盘输入等。

语法

以下是 addEventListener() 的语法

element.addEventListener(event, function, useCapture)

示例

在下面的示例中,我们将脚本与 addEventListener 方法一起运行

<!DOCTYPE html>
<html>
<body>
   <script>
      let btn
      for(let i=0; i<4; i++) {
         btn = document.createElement('button')
         btn.innerHTML = i+1
         btn.dataset.day = i+1
         document.body.appendChild(btn)
         btn.addEventListener('click', function(e){
            console.clear()
            document.write('button ' + e.target.dataset.day + ' clicked')
         })
      }
   </script>
</body>
</html>

脚本执行时,将生成一个由网页上的按钮和数字组成的输出。如果用户单击按钮,则会触发事件并显示用户按下的按钮。

示例

考虑另一个示例,其中我们使用 addEventListener() 方法。

<!DOCTYPE html>
<html lang="en">
<head>
   <title>Document</title>
   <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jqueryui.css">
   <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
   <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
   <script>
      var addButton;
      for (let i = 0; i < 3; i++) {
         addButton = document.createElement('button')
         if (i == 0) {
            addButton.innerHTML = "Javascript"
            addButton.dataset.subject = "Javascript"
            document.body.appendChild(addButton)
         }
         if (i == 1) {
            addButton.innerHTML = "MySQL"
            addButton.dataset.subject = "MySQL"
            document.body.appendChild(addButton)
         }
         if (i == 2) {
            addButton.innerHTML = "Java"
            addButton.dataset.subject = "Java"
            document.body.appendChild(addButton)
         }
         addButton.addEventListener('click', function (evnt) {
            console.clear();
            console.log('Subject ' + evnt.target.dataset.subject + ' pressed')
         })
      }
   </script>
</body>
</html>

当脚本执行时,它将生成一个输出,其中包含三个选项,Javascript、MySQL、Java,它们显示在网页上。如果用户按下该选项,则会触发事件并禁用用户按下的选项。

示例

考虑以下示例,我们将获取按钮的内部文本并将其放在变量上。

<!DOCTYPE html>
<html>
<body>
   <button onclick="Get(this)">DUKE</button>
   <button onclick="Get(this)">BULLET</button>
   <button onclick="Get(this)">RX100</button>
   <script>
      function Get(e){
         var buttonText=e.innerText;
         document.write(buttonText + " is pressed");
      }
   </script>
</body>
</html>

运行上述脚本后,Web 浏览器将显示 Duke、Bullet 和 RX100 等按钮。如果用户单击按钮,则会触发事件并显示用户按下的按钮。


相关文章