如何删除重复的选定项目并替换为数量

How to remove duplicate selected items and replace with quantity

本文关键字:项目 替换 何删除 删除      更新时间:2023-09-26

我一直在为学校做这个项目。这是K-J级的供货清单。每个年级都有2号铅笔和其他类似的物品。当你在幼儿园选择一个项目(#2支铅笔),并在五年级选择相同的项目时,然后生成列表,我不需要#2支铅笔出现两次,只需要一次,旁边有数量号。

我确信这与if语句有关,但我仍在努力掌握这些语句。

这是jquery移动部件

<body>
<section class="header_default footer_default" data-role="page" id="setup" data-title="Setup">
<article data-role="content">
    <div class="loaded"></div>
    <p id="count"></p>
    <form>
<fieldset data-role="controlgroup" id="hoursName">
            <legend><strong>Kindergarten Supply List:</strong></legend>
            <input type="checkbox" class="checkbox-group" name="checkboxsupply" id="1" value="(48 Quanity) #2 6-sided pencils (sharpened preferred)" >
            <label for="1">(48 Quanity) #2 6-sided pencils (sharpened preferred)</label>
            <input type="checkbox" class="checkbox-group" name="checkboxsupply" id="2" value="(2 Quanity) Red pencils">
            <label for="2">(2 Quanity) Red Pencils</label>
            <input type="checkbox" class="checkbox-group" name="checkboxsupply" id="3" value="(1 Quanity) Pack of pink erasers">
            <label for="3">(1 Quanity) Pack of pink erasers</label>
            <input type="checkbox" class="checkbox-group" name="checkboxsupply" id="4" value="(1 Quanity) Box of Kleenex (tissue)">
            <label for="4">(1 Quanity) Box of Kleenex (tissue)</label>
            <input type="checkbox" class="checkbox-group" name="checkboxsupply" id="5" value="(1 Quanity) Pack of pencil cap erasers">
            <label for="5">(1 Quanity) Pack of pencil cap erasers</label>
        </fieldset>
        <fieldset data-role="controlgroup" id="hoursName">
            <legend><strong>First Grade Supply List:</strong></legend>
            <input type="checkbox" name="checkboxsupply" id="1" value="(48 Quanity) #2 6-sided pencils (sharpened preferred)" >
            <label for="1">(48 Quanity) #2 6-sided pencils (sharpened preferred)</label>
            <input type="checkbox" name="checkboxsupply" id="2" value="(2 Quanity) Red pencils">
            <label for="2">(2 Quanity) Red Pencils</label>
            <input type="checkbox" name="checkboxsupply" id="3" value="(1 Quanity) Pack of pink erasers">
            <label for="3">(1 Quanity) Pack of pink erasers</label>
            <input type="checkbox" name="checkboxsupply" id="4" value="(1 Quanity) Box of Kleenex (tissue)">
            <label for="4">(1 Quanity) Box of Kleenex (tissue)</label>
            <input type="checkbox" name="checkboxsupply" id="5" value="(1 Quanity) Pack of pencil cap erasers">
            <label for="5">(1 Quanity) Pack of pencil cap erasers</label>
        </fieldset>
        <fieldset data-role="controlgroup" id="hoursName">
            <legend><strong>Second Grade Supply List:</strong></legend>
            <input type="checkbox" name="checkboxsupply" id="1" value="(48 Quanity) #2 6-sided pencils (sharpened preferred)" >
            <label for="1">(48 Quanity) #2 6-sided pencils (sharpened preferred)</label>
            <input type="checkbox" name="checkboxsupply" id="2" value="(2 Quanity) Red pencils">
            <label for="2">(2 Quanity) Red Pencils</label>
            <input type="checkbox" name="checkboxsupply" id="3" value="(1 Quanity) Pack of pink erasers">
            <label for="3">(1 Quanity) Pack of pink erasers</label>
            <input type="checkbox" name="checkboxsupply" id="4" value="(1 Quanity) Box of Kleenex (tissue)">
            <label for="4">(1 Quanity) Box of Kleenex (tissue)</label>
            <input type="checkbox" name="checkboxsupply" id="5" value="(1 Quanity) Pack of pencil cap erasers">
            <label for="5">(1 Quanity) Pack of pencil cap erasers</label>
        </fieldset>
        <fieldset data-role="controlgroup" id="hoursName">
            <legend><strong>Third Grade Supply List:</strong></legend>
            <input type="checkbox" name="checkboxsupply" id="1" value="(48 Quanity) #2 6-sided pencils (sharpened preferred)" >
            <label for="1">(48 Quanity) #2 6-sided pencils (sharpened preferred)</label>
            <input type="checkbox" name="checkboxsupply" id="2" value="(2 Quanity) Red pencils">
            <label for="2">(2 Quanity) Red Pencils</label>
            <input type="checkbox" name="checkboxsupply" id="3" value="(1 Quanity) Pack of pink erasers">
            <label for="3">(1 Quanity) Pack of pink erasers</label>
            <input type="checkbox" name="checkboxsupply" id="4" value="(1 Quanity) Box of Kleenex (tissue)">
            <label for="4">(1 Quanity) Box of Kleenex (tissue)</label>
            <input type="checkbox" name="checkboxsupply" id="5" value="(1 Quanity) Pack of pencil cap erasers">
            <label for="5">(1 Quanity) Pack of pencil cap erasers</label>
        </fieldset>
        <fieldset data-role="controlgroup" id="hoursName">
            <legend><strong>Forth Grade Supply List:</strong></legend>
            <input type="checkbox" name="checkboxsupply" id="1" value="(48 Quanity) #2 6-sided pencils (sharpened preferred)" >
            <label for="1">(48 Quanity) #2 6-sided pencils (sharpened preferred)</label>
            <input type="checkbox" name="checkboxsupply" id="2" value="(2 Quanity) Red pencils">
            <label for="2">(2 Quanity) Red Pencils</label>
            <input type="checkbox" name="checkboxsupply" id="3" value="(1 Quanity) Pack of pink erasers">
            <label for="3">(1 Quanity) Pack of pink erasers</label>
            <input type="checkbox" name="checkboxsupply" id="4" value="(1 Quanity) Box of Kleenex (tissue)">
            <label for="4">(1 Quanity) Box of Kleenex (tissue)</label>
            <input type="checkbox" name="checkboxsupply" id="5" value="(1 Quanity) Pack of pencil cap erasers">
            <label for="5">(1 Quanity) Pack of pencil cap erasers</label>
        </fieldset>
        <fieldset data-role="controlgroup" id="hoursName">
            <legend><strong>Fifth Grade Supply List:</strong></legend>
            <input type="checkbox" name="checkboxsupply" id="1" value="(48 Quanity) #2 6-sided pencils (sharpened preferred)" >
            <label for="1">(48 Quanity) #2 6-sided pencils (sharpened preferred)</label>
            <input type="checkbox" name="checkboxsupply" id="2" value="(2 Quanity) Red pencils">
            <label for="2">(2 Quanity) Red Pencils</label>
            <input type="checkbox" name="checkboxsupply" id="3" value="(1 Quanity) Pack of pink erasers">
            <label for="3">(1 Quanity) Pack of pink erasers</label>
            <input type="checkbox" name="checkboxsupply" id="4" value="(1 Quanity) Box of Kleenex (tissue)">
            <label for="4">(1 Quanity) Box of Kleenex (tissue)</label>
            <input type="checkbox" name="checkboxsupply" id="5" value="(1 Quanity) Pack of pencil cap erasers">
            <label for="5">(1 Quanity) Pack of pencil cap erasers</label>
        </fieldset>
        <fieldset data-role="controlgroup" id="hoursName">
            <legend><strong>Sixth Grade Supply List:</strong></legend>
            <input type="checkbox" name="checkboxsupply" id="1" value="(48 Quanity) #2 6-sided pencils (sharpened preferred)" >
            <label for="1">(48 Quanity) #2 6-sided pencils (sharpened preferred)</label>
            <input type="checkbox" name="checkboxsupply" id="2" value="(2 Quanity) Red pencils">
            <label for="2">(2 Quanity) Red Pencils</label>
            <input type="checkbox" name="checkboxsupply" id="3" value="(1 Quanity) Pack of pink erasers">
            <label for="3">(1 Quanity) Pack of pink erasers</label>
            <input type="checkbox" name="checkboxsupply" id="4" value="(1 Quanity) Box of Kleenex (tissue)">
            <label for="4">(1 Quanity) Box of Kleenex (tissue)</label>
            <input type="checkbox" name="checkboxsupply" id="5" value="(1 Quanity) Pack of pencil cap erasers">
            <label for="5">(1 Quanity) Pack of pencil cap erasers</label>
        </fieldset>
    </form>
    <button class="ui-btn ui-corner-all Create">Create List</button>

</article><!--content-->
</section>

这是我有的javascript

<div data-role="page" id="nameList"></div>
<script id="jsbin-javascript">
$(".Create").on("click", function() {
    var selectedValues = "";
    $checkedCheckboxes = $("input:checkbox[name=checkboxsupply]:checked");
    $checkedCheckboxes.each(function () {
        $('#nameList').append('<li>' + $(this).val() + '</li>');
    });
    window.location = "#nameList";
});
</script>

任何建议都很好,我试过用jquery来计算数量,但没有成功。

再次感谢。

假设您不能更改任何标记,下面是一种有点技巧的方法:)

  $(".Create").on("click", function() {
    var valuesToListItemMap = {};
    $('#nameList').text("");
    $checkedCheckboxes = $("input:checkbox[name=checkboxsupply]:checked");
    $checkedCheckboxes.each(function () {
      var value = $(this).val();
      var element;
      if (valuesToListItemMap[value]) {
        element = valuesToListItemMap[value];
        var newCount = parseInt(element.data('count')) + 1;
        element.data('count', newCount);
        element.text(value + ' ' + newCount + ' were selected');
      } else {
        element = $('<li>' + value + '</li>');
        element.data('count', 1);
        $('#nameList').append(element);
        valuesToListItemMap[value] = element;
      }
    });
    window.location = "#nameList";
  });

演示:http://jsbin.com/yanaju/4/edit