使用jQuery更改表单值

时间:2018-06-22 12:15:59

标签: jquery html forms

我想在页面上找到“。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中切出所需的字符串,但是由于产品代码的长度不同,我不再认为这会起作用。

1 个答案:

答案 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选择器。