获取div中随机ID的所有输入

时间:2015-12-25 00:57:44

标签: jquery

尝试获取div中所有输入的值。输入是产品的选项。

产品div ID是这样的:

<div class="row border" id="p-$productID">

(产品)列表中的每个唯一输入ID都是这样生成的:

p-$productID-$otherkeyThatIsNeverTheSame

我们从点击按钮的数据名称值中获取$ productID。

下面我试图找到@RomainGuidoux如何解释它的方式:jQuery Selector: Id Ends With?

似乎无法使这项工作。

$('.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>

1 个答案:

答案 0 :(得分:1)

首先,您的选择器样式无效。

如果您正在尝试获取输入的名称和值。像在中一样;

<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);
});

就像这个SAMPLE

一样

但是,如果还希望迭代选择选项,您可以尝试选择多个选择器,例如..

$("div[id^="+pres+"] > input, select[id^="+pres+"]").each(function() {
  allVal += '&' + $(this).attr('name') + '=' + $(this).val();
});

就像这个SAMPLE

一样

<强>更新

对于空输入或选择,我想这会做..

$("div[id^="+pres+"] > input, select[id^="+pres+"]").each(function() {
  if ($(this).val().length > 0) {
    allVal += '&' + $(this).attr('name') + '=' + $(this).val();
  }
});

就像这个SAMPLE

一样