如何使用jQuery从具有相同类名的多个元素获取值

时间:2019-10-28 16:10:03

标签: jquery

我使用foreach循环打印出一个表格,每一行都会有一个带有一些隐藏输入和一个提交按钮的表单,像这样

<form>
    <input type="hidden" value="<?php echo $item['name'] ?>" class="get_name">
    <input type="hidden" value="<?php echo $item['email'] ?>" class="get_email">
    <input type="hidden" value="<?php echo $item['address'] ?>" class="get_address">
    <input type="hidden" value="<?php echo $item['birthday'] ?>" class="get_birthday">
    <button type="submit" class="Add">Add</button>
</form>

我想问的是,当我点击该行中的“提交”按钮时如何获取该值。我使用了$('.classname').val(),唯一得到的结果就是表中第一行的值。

2 个答案:

答案 0 :(得分:2)

您可能正在使用val(),它可以按预期工作:

Get the current value of the first element....

如果使用.each()遍历元素,则可以像这样检索所有元素的值:

$("input[type=hidden]").each(function() {
 console.log($(this).val())
}

没有冒犯,但是这个问题相当琐碎,只需要一些基本的jQuery知识或如何在jQuery docs中进行搜索。我建议您不要像直接进入您的解决方案那样,而是采用这样的jQuery简介来了解如何遍历DOM并使用jQuery提取数据:

https://www.tutorialspoint.com/jquery/index.htm

答案 1 :(得分:1)

我不确定要清楚地了解您要实现的目标,但是连续获取所有值的一种方法是:

var row = {};
$('input[type=hidden]').each(function () {
  row[$(this).attr('class')] = $(this).val();
});
console.log(row);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
    <input type="hidden" value="<?php echo $item['name'] ?>" class="get_name">
    <input type="hidden" value="<?php echo $item['email'] ?>" class="get_email">
    <input type="hidden" value="<?php echo $item['address'] ?>" class="get_address">
    <input type="hidden" value="<?php echo $item['birthday'] ?>" class="get_birthday">
    <button type="submit" class="Add">Add</button>
</form>