javascript - 共享一个 javascript 函数的多个按钮

标签 javascript php mysql

我正在使用 foreach 循环从使用 php 的 mysql 表加载数据。

现在我在每个 foreach 数据集旁边有一个带有 javascript 函数的按钮来显示数据。

问题是,该按钮仅适用于 foreach 循环中最先获取的数据。我不确定是什么问题?

这是我的代码 https://jsfiddle.net/7qL2osp5/

顺便说一句,我正在使用这个脚本

<script type="text/javascript">
  function bigger(){
        document.getElementById("approvals-data-box").style.width="95%";
        document.getElementById("actual-data").style.display="block";
  }

</script>

谢谢

最佳答案

发生这种情况是因为您没有使用唯一 ID...ID 应该是唯一的。浏览器将始终返回他们找到的第一个,因此您总是获得第一行。

尝试使用事件的目标,这将是被点击的按钮,并找到它对应的 sibling 。

document.body.addEventListener('click',function(e){
if(e.target.className == "clickme"){
 e.target.parentElement.style.backgroundColor="red";
}
});
<ul>
 <li><button class="clickme">Click me</button> A</li>
 <li><button class="clickme">Click me</button> B</li>
 <li><button class="clickme">Click me</button> C</li>
 <li><button class="clickme">Click me</button> D</li>
 <li><button class="clickme">Click me</button> E</li>
</ul>

这是一个最小的例子。该脚本将事件附加到正文,并且仅当元素的类为“clickme”时才触发效果。然后我们获取该按钮的父级并更改它的背景颜色。

请注意,这是一个非常小的示例,并不是一个很好的方法。例如,如果您向按钮添加另一个类,它将无法工作...我建议您使用 jQuery,因为它会让您更轻松地处理事件。

关于javascript - 共享一个 javascript 函数的多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45615403/

相关文章:

php - Woocommerce 预订中每个人和项目的动态结帐自定义字段

php - 从一个单元格中有多个id的mysql表中获取

java - 如何确保 INSERT INTO 不会在 mySQL 数据库上添加相同的值

mysql - 从查询构建器转换为具有 3 个表的 Eloquent 模型

javascript - Number.IsNaN() 比 isNaN() 更坏吗

google-chrome - Chrome 开发者控制台无法运行 JS 循环

javascript - 是什么让 Express-Session 决定开始新的 session ?

javascript - 在 apply 或 apply() 和 call() 函数中使用 'null' 与 'this'

PHP 类扩展了 Singleton 模式

php - 使用直接下载链接从数据库导出数据