2016-02-29 96 views
0

考虑下面的HTML代码的jQuery遍历和文字替换

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

我希望更改文本“部门文件维护”说“部门文件搜索”,但只有当div.BlockObject包含div.Filter。两者都不工作

我已经试过

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

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

什么是正确/最好的方式来遍历DOM以获得所需的结果?

+0

'无功海峡= $( 'div.Filter')。最近( 'div.Block')。找到( 'div.BlockTitle' )。文本()。 var(str1)。str(str1)。str(str1)。str(str1)。str(str1)。str(str1)'str'= str.replace(''Maintenance','Search')$('div.Filter')。closest('div.Block')。find('div.BlockTitle')。这,你没有分配后,替换文本 – shu

+0

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

回答

0

试试这个

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