javascript - 在 Javascript 中操作内容后显示之前的 <div> 内容

标签 javascript jquery html

我会尝试简化代码。

基本上在我的jsp文件中,当文档加载时,选择值会自动填充。

例如:

<div class="col-sm">
    <label style="font-size: 20px;"><fmt:message key="cap.workplace"/>: </label>
     <select id="SelectWorkshop" class="chosen-select selectFilter">
        <option  selected="selected" value="0"><fmt:message key="cap.todos"/></option>
        <c:forEach items="${workshopList}" var="workshopList">
            <option value="${workshopList.idLocation}"><c:out value="${workshopList.location}" /></option>
        </c:forEach>
    </select>
</div>

但是根据用户的操作,我需要修改另一个选择的原始值,假设我调用了一个 Javascript 函数:

$("#SelectWorkshop").empty();

var tempvalue = "<option>This is a demo for Stackoverflow</option>";

$( "#SelectWorkshop" ).html(tempvalue);

这段代码执行后,之前select的内容就没有了,可以看到新的内容,这就是我想要的。

但我想创建一个名为“重置过滤器”的按钮(例如)来获取选择的“原始”值。

我尝试创建一个名为 ResetFilters 的按钮,然后执行此操作(基本上是注入(inject)以前的内容):

        $("#ResetFilters").click(function(){

            $("#SelectWorkshop").replaceWith(<option  selected="selected" value="0"><fmt:message key="cap.todos"/></option>
        <c:forEach items="${workshopList}" var="workshopList">
            <option value="${workshopList.idLocation}"><c:out value="${workshopList.location}" /></option>
        </c:forEach>);

        });

但是它不起作用,基本上语法不正确,我怎样才能同时注入(inject)html和jSTL?我不知道这是否是最正确的方法。

有人知道如何以最有效的方式做到这一点吗?

最佳答案

像这样吗?

let opts;
$(function() {
  opts = $("#SelectWorkshop").find("option").clone()
  $("#resetBTN").on("click",function() {
    $("#SelectWorkshop").html(opts)
  })
  $("#change").on("click",function() {
    $("#SelectWorkshop").html(`<option>Please select</option>`)
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-sm">
  <label style="font-size: 20px;"><fmt:message key="cap.workplace"/>: </label>
  <select id="SelectWorkshop" class="chosen-select selectFilter">
    <option selected="selected" value="0">TODO</option>
    <option value="ID Location 1">ID Location 1</option>
    <option value="ID Location 1">ID Location 1</option>
    <option value="ID Location 1">ID Location 1</option>
  </select>
</div>
<button type="button" id="change">change</button>
<button type="button" id="resetBTN">reset</button>

关于javascript - 在 Javascript 中操作内容后显示之前的 <div> 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60598785/

相关文章:

javascript - 修复 CSS 格式

javascript - 如何将数组的元素乘以具有相同索引的另一个数组的元素?

javascript - Express中的Routes文件夹

javascript - 从列表动画中删除节点

php - 我如何知道在 HTML 表单中选择了哪个选项?

jquery - jQuery中的鼠标悬停音频

javascript - 使用 jquery 设置选择表单的值

javascript - jQuery 未在 Google Chrome content_script 扩展中加载

javascript - 将 jQuery 重写为普通的旧 JavaScript - 性能提升值得吗?

jquery - CSS susbmenu 显示在 jQuery UI 选项卡下