我有多个类,其中有不同数量的字段,其中一个类示例:
<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"
中)
我可以通过以下方式选择课程:
$('.form-row-extra-phone')
如何对包含属性“名称”和“标识”的所有文件 进行迭代?
答案 0 :(得分:2)
我假设您在谈论<div class="row form-row-extra-phone spacer">
时是说class
吗?这是element
,而不是课程。
类可能是一个有问题的术语,因为它可以引用完全无关的CSS / DOM类或 Javascript类。
因此,如果您有<div class="something">
,则something
是CSS / DOM类,但整个问题不是 该类,而是element
现在fields
所指的也只是element
。
因此,您要选择具有类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));
答案 1 :(得分:0)
当您使用^=
时,它以开头,而$=
时的是结尾。
如果条件为(名称和ID)
$('.form-row-extra-phone input[name^="extraPhone"][id^="id_extraPhone"]')
如果条件为(名称或ID)
$('.form-row-extra-phone input[name^="extraPhone"],input[id^="id_extraPhone"]')
为此https://api.jquery.com/multiple-attribute-selector/或Google选中“ jQuery多个属性选择器”