【问题标题】:Check if there are two or more elements with same class and start some activity检查是否有两个或多个具有相同类的元素并开始一些活动
【发布时间】:2016-01-15 09:58:26
【问题描述】:

我有三种产品,结构如下:
复选框 | 标签(相同的文本但不同的值标签)| 数量下拉列表(不同的输入名称)

它们有三个不同的标签“类”:

第一个 - <label for="related-checkbox-7087458-Z22-00026">
第二 - <label for="related-checkbox-7087458-Z22-00027">
第三 - <label for="related-checkbox-7087458-Z22-00028">

它们之间的共同点是:“包括免费保险”

我还有三个输入名称不同的 QTY(数量框):

第一个 - name="related_products[7087458][2536][qty]"
第二 - name="related_products[7087458][2537][qty]"
第三 - name="related_products[7087458][2538][qty]"

到目前为止,我知道如何将第一个的数量更改为“1”(默认为 0),但是我不确定如何使用不同的 “label for”来定位第二个产品 属性和不同的“输入名称”。我尝试添加第二个 if 语句,但似乎这不起作用。

请注意,我正在尝试将仅包含以下文本的产品的数量更改为一个:包括免费保险

请看我的JSFIDDLE

【问题讨论】:

  • 那么如果标签中包含“包含免费保险”的文字,那么输入的值应该是 1 吗?你做了代码,你能修改HTML吗?
  • 不,不幸的是我不能只修改 JS 逻辑的代码
  • 尝试在你的 JS 中替换输入选择器(第 7 行): var input = label.parentNode.nextElementSibling.nextElementSibling.querySelector('input[type="text"].input-qty' );
  • @Zagonine 你能把它添加为答案以便我接受吗?

标签: javascript html arrays


【解决方案1】:

您的 JS 中的输入选择器过于具体。
尝试将您的 JS 中的选择器(第 7 行)替换为:

var input = label.parentNode.nextElementSibling.nextElementSibling.querySelector('input[type‌​="text"].input-qty');

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 2012-07-29
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多