Jquery .hide()并不完全删除空格

时间:2018-04-10 05:27:45

标签: jquery

function CondtionalCheck(BaseControlID, ChildControlID, Condition) {

    if ($("#" + BaseControlID).is(':checked')) {
        $("#div" + ChildControlID).show();
    } else {
        $("#div" + ChildControlID).hide();
        $("#" + ChildControlID).val("");
    }
}

以上是我的hide()show()功能。元素隐藏后,它会删除空格,但它并没有真正删除所有空格。

是什么导致这种情况发生?

2 个答案:

答案 0 :(得分:0)

hide()函数会将DOM元素的样式设置为visibility: hidden。这相当于在普通的非jQuery javascript中说myElement.style.visibility = 'hidden';

但隐藏的元素仍然包含在" flow"正如您清楚看到的那样,页面的(或布局)。您需要设置的是the display CSS property。我不确定jQuery函数会是什么,但在常规javascript中它是myElement.style.display = 'none';。这实际上会从" flow"中删除你的元素。 (或布局)网页。

答案 1 :(得分:0)

方法show()hide()设置元素的可见性。如果您想完全隐藏DOM元素,那么最好使用方法css()。 您的代码将如下所示:

function CondtionalCheck(BaseControlID, ChildControlID, Condition) {
  if ($("#" + BaseControlID).is(':checked')) {
      $("#div" + ChildControlID).css('display', 'block');
  } else {
      $("#div" + ChildControlID).css('display', 'none');
      $("#" + ChildControlID).val("");
  }
}