繁体   English   中英

如何在 Javascript 中只显示一次类别?

[英]How can I show categories only once in Javascript?

我有一个关于只显示once categories的问题。 我写了一些代码来处理这个过程,但类别显示为twice 我指出了问题的出处。

我该如何解决?

这是我的 html 零件,如下所示。

<div class="form-group row">
            <label class="col-sm-4 col-form-label">Select one or more categories:</label>
            <div class="col-sm-8">
                <select class="form-control" th:field="*{categories}" multiple required
                        style="resize: vertical; height: 200px">
                    <th:block th:each="cat : ${listCategories}">
                    <option th:value="${cat.id}">[[${cat.name}]]</option>
                    </th:block>

                </select>
            </div>
        </div>      

        <div class="form-group row">
            <label class="col-sm-4 col-form-label">Chosen categories:</label>
            <div class="col-sm-8">
                <div id="chosenCategories">
                
                </div>
            </div>
        </div>

这是我的 js 脚本代码,如下所示。

<script type="text/javascript">
 
    moduleURL = "[[@{/brands}]]";
 
    
    $(document).ready(function() {
        dropdownCategories = $("#categories");
        divChosenCategories = $("#chosenCategories");
 
        dropdownCategories.change(function() {
            divChosenCategories.empty();
            showChosenCategories();
        });
        
        showChosenCategories();  // ISSUE
    });
 
    function showChosenCategories() {
        dropdownCategories.children("option:selected").each(function() {
            selectedCategory = $(this);
            catId = selectedCategory.val();
            catName = selectedCategory.text().replace(/-/g, "");
 
            divChosenCategories.append("<span class='badge badge-secondary m-1'>" + catName + "</span>");
        });
 
    }
    
</script>

愿这段代码解决你的问题:

<script type="text/javascript">

moduleURL = "[[@{/brands}]]";


$(document).ready(function() {
    dropdownCategories = $("#categories");
    divChosenCategories = $("#chosenCategories");

    dropdownCategories.change(function() {
        divChosenCategories.empty();
        showChosenCategories();
    });
    
    showChosenCategories();  // ISSUE
});

function showChosenCategories() {
    dropdownCategories.children("option:selected").each(function() {
        selectedCategory = $(this);
        catId = selectedCategory.val();
        catName = selectedCategory.text().replace(/-/g, "");
        $('#remove-'+catId).remove();
        divChosenCategories.append("<span id='remove-"+catId+"' class='badge badge-secondary m-1'>" + catName + "</span>");
    });

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM