2016-02-29 3 views
0

Vu le code html suivantdéplacement jquery et le texte remplacent

<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> 

Je souhaite modifier le texte « Département Maintenance Fichier » pour dire « Département Recherche Fichier », mais seulement si div.BlockObject contient div.Filter.

J'ai essayé

$('div.Filter').parent().sibling('div.BlockControl').child('div.BlockTitle').text().replace('Maintenance', 'Search'); 

et

$('div.Filter').closest('div.Block').find('div.BlockTitle').text().replace('Maintenance', 'Search'); 

dont aucun travail.

Quelle est la bonne/meilleure façon de traverser le DOM pour obtenir le résultat souhaité?

+0

'var str = $ ('div.Filter'). Le plus proche ('div.Block'). Find ('div.BlockTitle').texte(). var str1 = str.replace ('' Maintenance ',' Recherche ') $ (' div.Filter '). closest (' div.Block '). find (' div.BlockTitle '). text (str1) .' essay ceci, vous n'avez pas affecté après avoir remplacé le texte – shu

+0

ou http://stackoverflow.com/questions/5115152/jquery-find-and-replace-string –

Répondre

0

essayer

$('.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>

0
<script> 

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

}); 
</script>