提问者:小点点

哪个jQuery函数会访问这个标记中的下一个表和下一个输入[type=submit]按钮?


我有一个网页上的mp3产品正在销售。每个页面代表一个相册实体。至少每个页面包含一个专辑产品和至少一个或多个MP3可作为单独的产品购买。每个专辑和mp3产品都有一个输入[Type=Submit]按钮,它的功能相当于“添加到购物车”按钮。

一些MP3被指定为专辑。这是通过span标记使用标记完成的。

<span class=“album-only-tag”>True</span>

基于这个标记,我试图编写一些javascript,它将完成3件事情:

•删除包含价格的表格

•禁用submit按钮,这样用户就不能添加到购物车(他们必须购买相册)。

•将输入[type=“Submit”]的值更改为“Album only”。

此外,在代码按照mp3运行之后,它需要停止,并保持其他价格表&“添加到购物车”按钮不变。

这里的jQuery代码不工作。我想我对next()函数的使用是不正确的。

我应该使用什么jQuery函数来访问这个标记中的下一个表和下一个表单输入[type=“Submit”]按钮?

顺便说一句-这里的标记被缩写了。

<div class="views-row views-row-1 views-row-odd views-row-first">
 <div  class="ds- 1col node node--ltv-track-ii node-teaser node-product-type node--ltv-track-ii node-product-type-teaser node-ltv-track-ii-teaser view-mode-teaser node--teaser node--ltv-track-ii--teaser clearfix">
 <span class="album-only-tag">True</span>
 <table class="commerce-price-rrp-your-price">
  <tr class="odd">
   <td class="webprice-title">Price</td>
   <td class="webprice-total">$5.95</td> </tr>
</table>
<div class="field field-name-field-product">
  <form class="commerce-add-to-cart commerce-cart-add-to-cart-form-1909 commerce-cart-add-to-cart-form-1909" action="/ltvalbums/wah/lokaha" method="post" id="commerce-cart-add-to-cart-form-1909" accept-charset="UTF-8">
<div><input type="hidden" name="product_id" value="1909" />
  <input type="hidden" name="form_build_id" value="form-qbskkxq4JIW0IEzmvAgwqow7QylhhgdtnfmqbHrdMe0" />
  <input type="hidden" name="form_id" value="commerce_cart_add_to_cart_form_1909" />
  <div id="edit-line-item-fields--2" class="form-wrapper"></div>        <input type="submit" id="edit-submit--2" name="op" value="Add to cart" class="form-submit" />
  </div>
  </form>
</div>

非常感谢对此的任何帮助!


共1个答案

匿名用户

给你,

$('.album-only-tag').each(function () {
    var table = $(this).next('table');
    var submitBtn = table.next('div').find('input[type="submit"]');

    // disable the add to cart button
    submitBtn.prop('disabled', true);

    // change the text to "Album only"
    submitBtn.val("album only");

    // remove the table
    table.remove();
});