我有一张包含一些记录的表格,在每一行tr
中,我有两个TD
的文本框,
所有文字框都没有Id
和Class
,他们只有一个Name
,他们的名字就像下面一样
PurchaseDetails[some number].Quantity
PurchaseDetails[some number].PurchasePrice
像:
PurchaseDetails[1457160526936].Quantity
PurchaseDetails[1457160526936].PurchasePrice
我使用以下代码但不起作用:
var ProductQuantity = $(this).find("input[name=PurchaseDetails[/^[0-9]+$/].Quantity]").val();
var ProductPurchase = $(this).find("input[name=PurchaseDetails[/^[0-9]+$/].PurchasePrice]").val();
我的完整HTML代码是:
<tr >
<td><input type="text" class="form-control" name="PurchaseDetails[1457161853893].Quantity" ></td>
<td><input type="text" class="form-control" name="PurchaseDetails[1457161853893].PurchasePrice" ></td>
</tr>
答案 0 :(得分:1)
如果当前上下文中只有一个元素具有该前缀和后缀($(this)
),则可以使用attribute starts with selector和attribute ends with selector。
$(this)
.find('input[name^="PurchaseDetails"][name$="Quantity"]').val();
答案 1 :(得分:1)
您可以使用 filter()
进行使用正则表达式进行过滤
.container-fluid {
background-size: 100% 100%;
background-attachment: fixed;
}
// replace `$('input')` to `$(this).find('input')` to avoid searching in global context
var ProductQuantity = $("input").filter(function() {
return /^PurchaseDetails\[\d+\]\.Quantity$/.test(this.name);
}).val();
var ProductPurchasePrice = $("input").filter(function() {
return /^PurchaseDetails\[\d+\]\.PurchasePrice$/.test(this.name);
}).val();
console.log(ProductQuantity, ProductPurchasePrice);