javascript - 根据选择选项隐藏/显示动态生成的 div

标签 javascript jquery hide show-hide

我有一些由 jquery 生成的 div。里面显示了价格、标题和所选选项的值。

如果没有选择任何选项,我尝试了很多方法来隐藏每个 div 类“结果”,但没有运气。

有没有办法隐藏每个div而不重写整个代码?

JS:

function pcc_calc_forms() {
  jQuery(".calcolare").each(function (e) {
    var t = jQuery(this).attr("id");

    var n = pcc_form_data(t);
   jQuery("#" + t + "-mostra").html('<h3 class="pcc-total">Totale : ' + n[0] + "" + "€" + '</h3><div class="content">' + n[1] + '<br /><br /></div>')
  })
}

function pcc_form_data(e) {
  var t = new Array(0, "");
  var n = new Array;
  var r = new Array;

  $("#" + e + " select").each(function (e) {
    var title = $(this).attr("data-title");
    var inside = $(this).find("option:selected").attr("data-title");
    var i = $(this).find("option:selected").html();

    if (inside === undefined) {
      inside = " ( " + i + " ) "
    } else {
      inside = " ( " + inside + " ) "
    }

    var i = $(this).find("option:selected").attr("data-price");
    var s = parseFloat($(this).attr("data-mult"));

    if (isNaN(s)) {
      s = 1
    }
    var o = parseFloat($(this).find("option:selected").text());
    if (isNaN(o)) {
      o = 0
    }

    if (i !== undefined) {
      if (i == "this") {
        i = o
      } else {
        i = parseFloat(i)
      }

      t[0] = t[0] + parseFloat(i) * s;

      if (s == 1) {
        t[1] = t[1] + "<div class=\"result\"><b>" + title + "" + inside + "</b> : " + parseFloat(i) + "" + " € " + "</div>"
      } else {
        t[1] = t[1] + "<div class=\"result\"><b>" + title + "" + inside + "</b> : " + parseFloat(i) + " X " + s + " = " + parseFloat(i) * s + "" + " € " + "</div>"
      }
    }
  });

  n = [];
  r = [];

  return t
}

$(document).ready(function () {
  pcc_calc_forms();

  $(document).on("change", ".calcolare select", function () {
    pcc_calc_forms()

  });
});

THIS是 fiddle 的链接

预先感谢您的任何提示。

最佳答案

$(document).on("change", ".calcolare select", function () {
  var i = $(this).find('option:selected').index();  
  alert(i);
  //if(i>0) ppc_calc_forms();
  //else $('.results').hide();
})

这将找到所选选项的索引... as you can see ,它可以工作,只是不符合你的功能......

我会尽可能简化该脚本..

关于javascript - 根据选择选项隐藏/显示动态生成的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713953/

相关文章:

javascript - Vuejs typescript this.$refs.<refField>.value 不存在

javascript - onclick 未被调用(带有建议的搜索框下拉列表)

javascript - 如何将 `google map`到 `div`直接加载到容器中?

javascript - 如何将当前日期插入数据库?

java - Osmdroid:单击时显示和隐藏标记描述

javascript datepicker 检测输入字段中更改的值

javascript - 如何根据其他列动态更改 Bootstrap 列宽度?

jquery - 使用 jquery 向所有 data-required=true 的表单字段添加星号

javascript - 隐藏元素直到页面完全加载

css - Wordpress 主题在移动屏幕上隐藏标题电子邮件