0

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">&nbsp;</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">&nbsp;</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?

  • `var str = $('div.Filter').closest('div.Block').find('div.BlockTitle').text(). var str1 = str.replace(''Maintenance','Search') $('div.Filter').closest('div.Block').find('div.BlockTitle').text(str1 ).` try this , you have not assigned after replacing the text – shu Feb 29 '16 at 10:57
  • or http://stackoverflow.com/questions/5115152/jquery-find-and-replace-string – Arun P Johny Feb 29 '16 at 10:59

2 Answers2

0

try this

$('.Filter').each(function() {
  $(this).closest('.Block').find('.BlockTitle').text('Department File Search');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<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">&nbsp;</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">&nbsp;</div>
  </div>
  <div class="BlockObject">
    <div class="Process" id="17_cbos_departments_table_process_"></div>
    <div class="BlockNotices"></div>
  </div>
</div>
Pavan Teja
  • 3,192
  • 1
  • 15
  • 22
0
<script>

$(document).ready(function() {
$('.Block.shadow').each(function(){
  if($(this).find('div.BlockObject .filter')){
    $(this).find('.BlockTitle').html('Department File Search'); 
  }
});

});
</script>
Mitali
  • 166
  • 1
  • 10