将多个jQuery条件语句合并到单个查询中?

Tru*_*an1 4 javascript jquery jquery-selectors

在我的网页上,我为每个在页面上呈现的记录输出jQuery,如下所示:

if ($.trim($('#attachment<%# Eval("Id")%> .content').html()) == '') {
  $('#attachmentClick<%# Eval("Id")%>').hide();
}
Run Code Online (Sandbox Code Playgroud)

请注意,元素ID上存在服务器绑定,以确保每条记录都处理了jQuery.有没有办法在页面上只嵌入一次条件语句一次,例如"for all $(this.ID + ' .attachmentsClick'),hide only only $('.attachments.content').html()trimmed is blank"?

Spy*_*cho 6

您可以使用jQuery的过滤器函数将潜在元素集合减少为具有空内容的元素,然后隐藏它们:

$('.attachmentsClick').filter(function(){
    return $.trim($(this).find('.content').html()) == '';
}).hide();
Run Code Online (Sandbox Code Playgroud)

这假定您将"attachmentsClick"类赋予所有行元素.它不需要行元素的ID.只需在加载内容后运行此内容,它将隐藏所有带有"附件点击"类的元素,这些元素的子类具有"内容"类,在修剪时为空.

您的HTML可能类似于:

<div class="attachmentsClick"><!-- this one will be hidden -->
  <div class="content"></div>
</div>

<div class="attachmentsClick"><!-- this one will be hidden too -->
  <div class="content">     </div>
</div>

<div class="attachmentsClick"><!-- this one will NOT be hidden -->
  <div class="content"><p>some content<p></div>
</div>
Run Code Online (Sandbox Code Playgroud)