JavaScript 值传递

标签 javascript php jquery

使用 SQLite 我可以列出值

<div class="text-middle">
    <?php foreach($result as $row) ?> 
        <button class="button button1" id="myBtn" value="<?php echo $row['Id']; ?>" onclick="myFunction()"><?php echo $row['Id']; ?></button>
    <?php } ?>
</div>

但是,当我点击按钮时,它只显示弹出警报中的第一个值。

function myFunction() {
    var x = document.getElementById("myBtn").value;
    alert(x);
}

如何获取每个按钮对应的值?

最佳答案

您的所有按钮都具有相同的 id 属性。它们在页面中必须是唯一的。要解决此问题,您可以删除 id 属性并将按钮的引用传递给函数:

<div class="text-middle">
    <?php foreach($result as $row) { ?> 
        <button class="button button1" value="<?php echo $row['Id']; ?>" onclick="myFunction(this)"><?php echo $row['Id']; ?></button>
    <?php } ?>
</div>
function myFunction(el) {
    var x = el.value;
    console.log(x);
}

更好的方法是在所有按钮上放置相同的 class 并使用不显眼的 JS 代码来附加您的事件处理程序,如下所示:

<div class="text-middle">
    <?php foreach($result as $row) { ?> 
        <button class="button" value="<?php echo $row['Id']; ?>"><?php echo $row['Id']; ?></button>
    <?php } ?>
</div>
// native JS:
var buttons = document.getElementsByClassName("button");    
for (var i = 0; i < buttons.length; i++) {
    buttons[i].addEventListener('click', function() {
        var x = this.value;
        console.log(x);
    });
}

// jQuery:
$('.button').click(function() {
    var x = this.value;
    console.log(x);
});

关于JavaScript 值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569147/

相关文章:

javascript - 如何使用 jQuery 获取嵌套 div 的内容

javascript - 为什么 jQuery 单击(下一步)按钮无法正常工作?

javascript:如果用户名存在,则不提交表单

javascript - Ziggeo、WebRTC 无法读取视频文件

javascript - 将 Angular 值传递给普通 JavaScript

javascript - Parasails.js 和使用(Vue Router 或 virtualPages)

php - 通过电子邮件验证链接

php - MySQL 查询(分层数据)返回错误的节点深度

php - Mysql JOIN 查询执行时间太长或超时

javascript - 为什么我的 if 语句继续运行?