【问题标题】:Getting list of IDs to the variable获取变量的 ID 列表
【发布时间】:2021-08-27 09:31:54
【问题描述】:

谁能帮我解决以下问题。我需要创建一个数组,在其中放置所有选中的单选按钮的 ID。我尝试了以下方法:

var checked = [];
$('.tsg input:checked').each(function() {
    var id = $(this).attr('id');
    checked = checked.push(id);
});

但它说

Uncaught TypeError: checked.push is not a function

【问题讨论】:

    标签: javascript jquery arrays


    【解决方案1】:

    checked.push(x) 返回x

    通过键入checked = checked.push(x),您将在第一次迭代中将checked 替换为x,之后checked 不再是一个数组并且没有push 方法。

    push原地修改数组,无需赋值。

    【讨论】:

    • 非常感谢您的快速回答,现在似乎可以工作了,所以最终代码是 var checked = []; $('.tsg input:checked').each(function() { var id = $(this).attr('id'); checked.push(id); });
    • 再次感谢您。我需要再等 7 分钟才能将您的答案标记为解决方案。
    【解决方案2】:

    您可以使用 map() 为您创建数组。

    const checked = $('.tsg input:checked').map((i, el) => el.id).get()
    
    console.log(checked)
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="tsg">
      <input id="1" type="checkbox" checked/>
      <input id="2" type="checkbox" checked/>
      <input id="3" type="checkbox" />
      <input id="4" type="checkbox" checked/>
    </div>

    【讨论】:

    • 非常感谢。我也会尝试这个 jQuery 方法!...更新:它有效!感谢您添加完整的代码 sn-p!
    猜你喜欢
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    相关资源
    最近更新 更多