Javascript块删除

时间:2010-09-29 11:46:28

标签: javascript jquery html

我真的需要在js的帮助下删除一些块。是否有可能不隐藏某些块,但完全删除它?

因为我有一个字段,用户将无法看到他是否在我的选择框中选择了“否”,但是JQuery验证仍会发送此字段为空的消息。

我有这个:

     $(function () {
          $("#wichonepmtofollow").hide();

          $("#particularpmselect").change(function () {
              // find the selected one
              var selectedCountry = $(this).val();

              if (selectedCountry == "yes") {
                  $("#wichonepmtofollow").show();
              }
              // otherwise hide it
              else {
                  $("#wichonepmtofollow").hide();
              }
          });
      });

而且:

<div id="wichonepmtofollow">
    <div class="section" id="inputdiv">
        <span class="fieldname">Which one?</span>
        <input type="text" id="wichonepm" name="wichonepm" title="can't be empty" class="required" minlength="1"/> <!-- Nessesary to be filled-->
           <script type="text/javascript">
               var wichonepm = new LiveValidation('wichonepm');
               wichonepm.add(Validate.Presence);
           </script>  
    </div>
    <div id="clear"></div>
</div>

喜欢而不是$(“#pleasespecify”)。hide();制作类似$(“#pleasespecify”)的内容。删除();或其他什么?

4 个答案:

答案 0 :(得分:4)

$("#pleasespecify").remove();

是正确的(docs here)。

或者,您可以清空父母:

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

编辑(由于OP的评论):

您可以保留已删除的对象,例如:

var savedObj = $("#pleasespecify").remove();

然后你可以稍后追加它:

$("#wichonepmtofollow").append(savedObj);

请注意,这也将取消绑定绑定到关联DOM元素的所有事件。要保持绑定所有事件,可以使用jQuery的detatch方法。

答案 1 :(得分:0)

[根据用户评论更新]

将html临时保存在变量中 -

if (selectedCountry == "yes") {
    $("#wichonepmtofollow").html(temHtml);
}
else {
    temHtml = $("#wichonepmtofollow").html();
    $("#wichonepmtofollow").html('');
}

全球宣布temHtml

var temHtml;

答案 2 :(得分:0)

将html存储在临时变量中,然后从页面中删除:

var tempHtml;//declare tempHtml outside other script code so it's available later

然后,而不是$("#wichonepmtofollow").hide();使用此:

 tempHtml = $("#wichonepmtofollow").html();
 $("#wichonepmtofollow").html(''); //empty the container

稍后恢复html:

 $("#wichonepmtofollow").html(tempHtml);

答案 3 :(得分:0)

没有必要销毁任何东西,只需启用或禁用它,如果它被隐藏则不会被验证:

$(function () {
      $("#wichonepmtofollow").hide();
      $('#wichonepm').attr('disabled',true);

      $("#particularpmselect").change(function () {
          // find the selected one
          var selectedCountry = $(this).val();

          if (selectedCountry == "yes") {
              $("#wichonepmtofollow").show();
              $('#wichonepm').attr('disabled',false);
          }
          // otherwise hide it
          else {
              $("#wichonepmtofollow").hide();
              $('#wichonepm').attr('disabled',true);
          }
      });
  });