我想我已经差不多了,但还没有完全...
仅当 DOM 中上一层和下两层的元素包含某个字符串时,我才想从此 HTML 中选择 a.rate 按钮。我知道这扩展了 jQuery 选择器的限制,但它只是为了好玩而不是生产。
HTML:
<div class="comment">
<div class="submitted">
<a href="#" title="View user profile.">Blow, Jo</a>
</div><!-- CLASS submitted -->
<div class="content">
<p>blah</p>
<p>blah</p>
<p>blah</p>
</div><!-- CLASS content -->
<ul class="links">
<li class="comment_delete first"><a href="/comment/delete/1204">delete</a></li>
<li class="comment_edit"><a href="/comment/edit/1204">edit</a></li>
<li class="flag_content_add">hippo</li>
<li class="rate_thumbup_comments last">
<span>
<div class="rate-widget-1 rate-widget clear-block rate-average">
<a class="rate-button" rel="nofollow" href="#">up</a>
<div class="rate-info">1 person likes this.</div>
</div>
</span>
</li>
</ul>
</div>
到目前为止,我得到的 jQuery 选择器:
$('.submitted a:contains("Blow")').parent().parent().next('.links .rate_thumbup_comments .rate-widget').find('a').css('display', 'none');
所以,重申一下:我想选择 div.rate-widget 内的标签,它位于 li.rate_thumbup_comments 内,只有当容器 div.submitted 有一个带有“Blow”的字符串时。所有这些都在容器 div.comment 中