当前位置: 首页 > 知识库问答 >
问题:

选择具有相同CSS类和jQuery的选项

司寇书
2023-03-14

我是jQuery/js的新手,遇到了这样的问题:您可以运行我的代码,发现计数不正确:

null

$('.form-control').change(function() {
  countTotal();
});

$('.form-control').change(function() {
  countTotal();
});

function countTotal() {


  var level1 = parseInt($(".form-control :selected").val(), 10);
  var level2 = parseInt($(".form-control :selected").val(), 10);


  var total = level1 * level1;


  $(".form-group > #riz").val(total);
  $(".form-group > #riz").attr("disabled", true);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<div class="form-group">
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</div>

<div class="form-group">
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</div>
<div class="form-group">
  <input id="riz">
</div>
<hr>

<div class="form-group">
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</div>

<div class="form-group">
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</div>
<div class="form-group">
  <input id="riz">
</div>

null

我的HTML必须保持不变,我必须找到一些方法使jQuery在本例中工作,并且保持HTML结构不变。如果您对如何解决此问题有任何想法,请随时发表评论或分享代码想法。
我感谢您的帮助!

共有1个答案

龚志
2023-03-14

您的代码存在多个问题。

首先,您多次使用同一个id。ID必须唯一。

第二,认为这是错误的var total=level1*level1;应该是var total=level1*level2;

第三,您不需要在$(“.form-control:selected”).val()中使用:selected,因为如果您的元素是select,则$(“.form-control”).val()将始终采用selected选项的值。

现在我已经更改了html和jquery,使其能够满足您的需求。

演示

null

$('.form-control').change(function() {
  countTotal($(this));
});

function countTotal(ele) {
  var level1 = parseInt(ele.val() || 0, 10);
  var level2 = parseInt(ele.siblings(".form-control").val() || 0, 10);

  var total = level1 * level2;

  ele.closest(".form-group").next().find(".riz").val(total);
  ele.closest(".form-group").next().find(".riz").attr("disabled", true);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<div class="form-group">
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</div>
<div class="form-group">
  <input class="riz">
</div>
<hr>

<div class="form-group">
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
  <select class="form-control">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</div>
<div class="form-group">
  <input class="riz">
</div>
 类似资料:
  • 问题内容: 我有一张桌子,像这样: 我想选择具有相同基因座和染色体的所有行。例如,第3行和第4行。一次可能有2个以上,并且它们可能不是按顺序排列的。 我尝试了这个: 但是,即使重复,它总是返回第3行,从不返回第4行。我想我缺少明显而简单的东西,但我茫然。 有人可以帮忙吗? 问题答案: 您需要了解,当您在查询中包含内容时,您是在告诉SQL合并行。您将为每个唯一值获得一行。在随后过滤这些组。通常,您可

  • 问题内容: 我正在尝试为一个网站创建一个测试用例,其中包括带有3个链式选择的表单。加载网页时,默认情况下会填充第一选择。如果从第一个选择中选择了任何选项,则通过ajax调用填充第二个选择。以同样的方式,当在第二个选择项上选择一个选项时,则通过ajax调用填充第三个选择项。最后,在第三个选择上选择一个选项时,将在html表中填充我需要验证的信息。 三个相互关联的选择具有此结构 我肯定知道该网站使用J

  • 我使用jQuery设置了具有相同类名的选中/未选中复选框。我搜索web在jQuery设置复选框检查。我也尝试使用道具和ATR。然而,它不适合我,但我可以禁用复选框。有人能告诉我我错过了什么吗? 下面是我使用的jquery: 页面中有复选框: 我的jquery:

  • 问题内容: 我知道有一个选择器。我似乎找不到选择器的使用或文档。有一个吗? 问题答案: CSS中没有伪类。 该动态伪类,像其他伪类,事实上所有其他选择,代表_国家_ ; 它们不代表文档树中的 事件 或 状态之间的转换 。举个例子:伪类代表了一个 被 关注的元素。它不代表刚刚_获得_关注的元素,也不存在伪类来代表刚刚 失去 关注的元素。 同样,这适用于伪类。虽然它表示具有指示设备在其上的元件,既不存

  • 问题内容: 如何使用jQuery选择应用了特定CSS属性的所有元素?例如: 如何通过名为“四舍五入”的属性进行选择? CSS类名非常灵活。 如何将这两个操作替换为一个操作。也许是这样的: 有什么更好的方法吗? 问题答案: 您不能(使用CSS选择器)根据已应用于它们的CSS属性来选择元素。 如果您想手动执行此操作,则可以选择文档中的每个元素,在它们上循环,然后检查您感兴趣的属性的计算值(尽管这可能仅

  • 问题内容: 该主题的解决方案使我不知所措。 我有一个看起来像的表格(除与我的问题无关的其他字段之外): 名称,卡号,会员类型 现在,我想要一个显示卡号和成员类型相同的行的视图。这两个字段都是整数。名称为VARCHAR。名称不是唯一的,并且相同的名称也应显示重复的卡号,会员类型。 即,如果下表是表格: 我想要: 只需按卡号排序即可使其对人类有用。 最有效的方法是什么? 问题答案: 由于您提到的名称可