Given the following html code
<div id="block_16" class="Block shadow">
<div class="BlockControls">
<div class="DeleteAction BlockAction"></div>
<div class="BlockTitle BlockAction">Department File Maintenance</div>
<div class="BlockTitleField BlockAction"></div>
<div class="HelpAction BlockAction"></div>
<div class="Separator"> </div>
</div>
<div class="BlockObject">
<div class="Filter" id="16_cbos_departments_table_filter_"></div>
<div class="BlockNotices"></div>
</div>
</div>
<div id="block_17" class="Block shadow">
<div class="BlockControls">
<div class="DeleteAction BlockAction"></div>
<div class="BlockTitle BlockAction">Department File Maintenance</div>
<div class="BlockTitleField BlockAction"></div>
<div class="HelpAction BlockAction"></div>
<div class="Separator"> </div>
</div>
<div class="BlockObject">
<div class="Process" id="17_cbos_departments_table_process_"></div>
<div class="BlockNotices"></div>
</div>
</div>
I wish to change the text "Department File Maintenance" to say "Department File Search" but only if div.BlockObject contains div.Filter.
I have tried
$('div.Filter').parent().sibling('div.BlockControl').child('div.BlockTitle').text().replace('Maintenance', 'Search');
and
$('div.Filter').closest('div.Block').find('div.BlockTitle').text().replace('Maintenance', 'Search');
neither of which work.
What is the correct/best way to traverse the DOM to get the desired result please?