我想在页面上找到“。simple-product-tile” 的每个实例,然后为href的每个附加部分(URL末尾的产品代码)查找到最接近的表单值,默认情况下为空白。
HTML:
<div class="simple-product-tile">
<!-- I need the product code at the end of the href 'demo2xx' -->
<a href="/demo-product-demo2xx"></a>
<form action="/basket/addproduct" id="product-form" method="post">
<div class="tbx tbx-quantity">
<!-- Append above product code to the empty value -->
<input id="productId" name="productId" value="" type="hidden">
</div>
<button class="btn-add-to-basket" title="Add to basket" type="submit">
<span class="btn-cnt">Add to basket</span>
</button>
</form>
</div>
使用一些非常基本的jQuery,我可以将每个值更改为示例代码'000000':
$(".simple-product-tile form input#productId").each(function() {
$(this).val('000000');
});
如何从最接近的href中剪切“ demo2xx”并将其转换为可以应用于最接近值的变量?
我假设我可以使用.slice()从href中切出所需的字符串,但是由于产品代码的长度不同,我不再认为这会起作用。
答案 0 :(得分:1)
您可以这样做:
$(".simple-product-tile").each(function() {
var url = $(this).find("a").attr("href"); // Taking HREF value.
var lastItem = url.split("-").pop(-1); // Taking last part of the string.
$(this).find("#productId:first").val(lastItem); // Assigning value to input.
});
在这里,我建议使productId
在页面上保持唯一。因为ID在DOM上应该是唯一的。我建议将其设置为class="productId"
。然后相应地更改.productId
而不是#productId
的jquery选择器。