如何通过jquery从td隐藏字段中获取值

How to get value from td hidden field through jquery

本文关键字:字段 获取 隐藏 td 何通过 jquery      更新时间:2023-09-26

我有一个动态表。我试图得到一个隐藏字段的值,即order_id,但我只得到了第一个id。如果我点击第3或第4个etc按钮,我仍然会得到第一个td的order_id。下面是我的代码:

<tr>
    <td>id</td>
</tr>
<tr>
    <td>
        <input type="hidden" id="hid" value="<?php echo $id; ?>">
        <input type="button" id="sends" value="Send" onclick="sendemails();">
    </td>
</tr>
<script>
    function sendemails(){
        var sends = $('#sends').val();
        var hid = $('#hid').val();
        alert(hid);
    }
</script>

您可以使用其他解决方案

<tr>
    <td>id</td>
</tr>
<tr>
    <td>
        <input type="hidden" id="hid" value="<?php echo $id; ?>">
        <input type="button" id="sends" value="Send" onclick="sendemails(<?php echo $id; ?>);">
    </td>
</tr>
<script>
function sendemails(hid){
    alert(hid);
}
</script>

请注意,属性"id"必须是唯一的。

问题是因为您可能在表中重复该行,这将导致按钮和输入的id在整个页面中重复,这是无效的。您需要使用类,在JS中附加事件,然后遍历DOM以找到相关的隐藏输入。试试这个:

<tr>
    <td>id</td>
</tr>
<tr>
    <td>
        <input type="hidden" class="hid" value="<?php echo $id; ?>" />
        <input type="button" class="sends" value="Send" />
    </td>
</tr>
$(function() {
    $(document).on('click', '.sends', function() {
        var sends = $(this).val();
        var hid = $(this).prev().val();
        alert(hid);
    });
});

请注意,我使用了委托的事件处理程序,正如您所说的,表是动态生成的。

尝试在onclick事件中添加"this",如下所示:onclick="sendemails(this);",并在函数中获取此信息。

尝试:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
    <td>id</td>
</tr>
<tr>
    <td>
        <input type="hidden" id="hid" value="hid">
        <input type="button" id="sends" value="Send" onclick="sendemails(this);">
    </td>
</tr>
</table>
<script>
    function sendemails(btn){
        var sends = btn.value;
        var hid = $("#" + btn.id).closest("td").find("#hid").val()
        alert(hid)
    }
</script>