javascript - 如何获取类中的所有字段

标签 javascript jquery formset

我有多个类,其中包含不同数量的字段,1 个类示例:

<div class="row form-row-extra-phone spacer">
        <div class="col-12">
            <div class="input-group">
                <input type="tel" name="extraPhone-0-phone_number" class="form-control" placeholder="Extra Phone Number" maxlength="128" id="id_extraPhone-0-phone_number">
                <div class="input-group-append">
                     <a class="btn btn-success btn-circle btn-sm add-form-row" href="#" role="button" id="plus_payment_data">+</a>
                </div>
            </div>
        </div>
</div>

我想迭代具有属性 "name"和 "id"的类内的所有字段,并将 1 添加到内部的数字(在示例中 name="extraPhone-0-phone_number" -> name="extraPhone-1-phone_number")

我可以通过以下方式选择类(class): $('.form-row-extra-phone')

如何迭代其内部包含属性“name”和“id”的所有字段?

最佳答案

我假设你的意思是<div class="row form-row-extra-phone spacer">当您谈论class时?这是element ,不是一个类。

类可能是一个有问题的术语,因为它可以指 CSS/DOM 类 Javascript 类,它们完全不相关。

如果你有<div class="something">然后something是一个 CSS/DOM 类,但整个东西不是那个类,而是一个 element 拥有该类(class)

现在还有您提到的fields也只是element s。

所以你想要的是选择具有类 form-row-extra-phone 的所有元素其中所有后代元素都具有 name属性。这很容易。基本上在 CSS 选择器中 (空格)是后代元素的选择器。

所以你可以选择.form-row-extra-phone [name] .

所以你可能想要的是这样的:

document.querySelectorAll('.form-row-extra-phone [name]')
  .forEach(elem => elem.name.replace(/[0-9]/, x => Number(x) + 1));

关于javascript - 如何获取类中的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58792185/

相关文章:

javascript - 如何使用jquery将base64图像路径转换为真实路径。

python - 如何保存 Django ModelFormSet?

python - django formset中的initial和instance有什么区别?

javascript - 为什么这个 jQuery 选择器找不到我的表单?

javascript - div 被 youtube 嵌入覆盖,我该如何解决?

django - 初始化一个表单集

javascript - 如果删除节点然后重新添加,Firebase 查询不会推送数据

javascript - 在 Objective C 中执行 js

javascript - Moment.js 你如何获得当前季度和前三个季度以及年份?

javascript - 子菜单的垂直下拉菜单事件类