jQuery - 为什么show parent不会触发孩子的显示?

时间:2010-08-25 02:47:43

标签: jquery

你好,世界。         ×       

的jQuery

  $('#closeerrordiv').click(function() {
      $(this).parent().animate({opacity: 0}, 'slow', function() {
        $('#regWarnMsg').slideUp('slow');
      });
  });   


  $('#regWarnMsg').text(responseText.msg);
  $('#regWarnMsg').show('slow');

当用户点击#closeerrordiv时,#regWarnMsg将关闭。

Q1>后来,我需要强制显示#regWarnMsg。我不知道为什么#regWarnMsg的孩子(即#closeerrordiv)不会同时出现。

Q2>为什么文本也没出现?

谢谢

1 个答案:

答案 0 :(得分:2)

当您调用.text时,您将使用responseText.msg替换#regWarnMsg中的当前Hello世界。它还会移除所有内容,包括span和其中的锚标记。

您可以尝试这样的事情:

<div id="regWarnMsg">
    <span id="errorText">Hello world.</span>
    <span id="closeerrordiv"><a>×</a></span>
  </div>

的jQuery

    $('#closeerrordiv').click(function() {
          $(this).parent().animate({opacity: 0}, 'slow', function() {
            $('#regWarnMsg').slideUp('slow');
          });
      });   


  $('#errorText').text(responseText.msg);
  $('#regWarnMsg').show('slow');

您现在只替换#errorText中的文本,这将保持关闭锚标记的位置。