0

我通过 ajax 在我的网站上有一个有点复杂的笔记系统。提交新笔记时,任何人都可以选择回复或关闭它。

如果他们回复,则带有回复类的 div 将附加到该便笺上,并且回复和关闭按钮将移至该便笺。

为了保持我的样式正确,我需要能够在没有回复时为按住按钮的框添加背景,但在有回复时删除该背景。

我的 html 看起来像这样

<div class="noteCont">
 <div class="topContainer">
  <p class="span8">
   <span>{{ $project_note->title }}</span>
  </p>
  <p class="pull-right note">date</p>
  <p class="clearfix"></p>
 </div><!--.topContainer-->
 <div class="memo">
  <p>name</p>
  <p class="noteContent"></p>
   @if($project_note->is_read)
     <p class="pull-right check">
      {{ date&nbsp;&nbsp;<i class="icon-thumbs-up"></i>&nbsp;&nbsp;<span>Read</span>
   </p>

  <div class="replyForm">
   <div class="replyButtons">
    {{ Form::open(['route'=>['note.update', $project_note->id], 'class' => 'pull-right reply_buttons']) }}
    <input type="button" class="btn btn-blue replyBtn" name="" value="Reply" />
    <input type="submit" class="btn btn-red closeBtn" name="" value="Close" />
    {{ Form::close() }}
    <p class="clearfix"></p>
  </div> <!-- .replyButtons -->

  <div class="reply">
   reply content here
  </div><!--.reply-->
</div><!--.noteCont-->

因此,基本上,如果单个 noteCont div 中没有回复 div,则在回复表单中添加背景颜色。我该怎么做呢?任何帮助都会很棒!

4

1 回答 1

1

您需要遍历每个 noteCont,如果有回复则添加该类,如下所示:

$('.noteCont').each(function(){
  //look for replies.
  if(!($(this).find('.reply').length)){
    //there are no replies - add a background colour.
    $(this).find('.replyForm').css('background-color', 'red');
  }
});

注意:这只会添加背景颜色 - 如果您还需要删除背景颜色(例如,如果您在添加回复后再次调用它),那么您需要在else其中放置相应的语句。

于 2013-10-22T15:05:45.473 回答