尝试获取div中所有输入的值。输入是产品的选项。
产品div ID如下:
<div class="row border" id="p-$productID">
(产品)列表中的每个唯一输入id都是这样生成的:
p-$productID-$otherkeyThatIsNeverTheSame
我们从单击的按钮的数据名称值中获得$ productID。
下面我试图找到一种方法@RomainGuidoux在这里解释它:jQuery选择器:ID结尾于?。
只是似乎无法使这项工作。
$('.btn#add_item').on('click', function () {
var prod = $(this).attr('data-name');
var allVal = '';
$("[id^='p-'+prod+'] > input").each(function() {
allVal += '&' + $(this).attr('name') + '=' + $(this).val();
});
alert(allVal);
});
迭代是这样的:
<select class="form-control" id="p-1-1" name="A">
<option>Type broodje</option>
<option value="Witte pistolette">Witte pistolette</option>
<option value="Bruine pistolette">Bruine pistolette</option>
</select>
<select class="form-control" id="p-1-2" name="B">
<option>Boter</option>
<option value="Met boter">Met boter</option>
<option value="Zonder boter">Zonder boter</option>
</select>
<select class="form-control" id="p-1-3" name="C">
<option>beleg</option>
<option value="Standaard belegd">Standaard belegd </option>
<option value="Dubbel Belegd">Dubbel Belegd</option>
</select>
首先,您的选择器样式无效。
如果您要获取输入的名称和值。像在
<button id="add_item" type="button" data-name="3"> Add Item </button>
<div id="p-3-12">
<input type="text" name="productName" value="Square" />
<input type="text" name="productQuantity" value="12" />
</div>
<div id="p-3-5565">
<input type="text" name="itemName" value="Cup" />
<input type="text" name="itemQuantity" value="5" />
</div>
然后可以尝试。
$('.btn#add_item').on('click', function () {
var prodId = $(this).attr('data-name');
var allVal = '';
var pres = 'p-' + prodId;
$("[id^="+pres+"] > input").each(function() {
allVal += '&' + $(this).attr('name') + '=' + $(this).val();
});
alert(allVal);
});
就像在这个样本中
但是,如果还想迭代选择选项,则可以尝试选择多个选择器,例如。
$("div[id^="+pres+"] > input, select[id^="+pres+"]").each(function() {
allVal += '&' + $(this).attr('name') + '=' + $(this).val();
});
就像在这个样本中
更新
对于空的输入或选择,我想这样做会..
$("div[id^="+pres+"] > input, select[id^="+pres+"]").each(function() {
if ($(this).val().length > 0) {
allVal += '&' + $(this).attr('name') + '=' + $(this).val();
}
});
就像在这个样本中
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句