我被要求将单词"form"的所有实例更改为"block"作为我们正在开发的WordPress应用程序的一部分。更换需要发生在整个重力形式的管理部分。因为重力表单没有一个简单的方法来改变这没有编辑插件,我选择使用jQuery来替换所有的实例在dom加载
我面临的问题是,重力表单动态地将内联javascript放入html的主体。内联/w显示页面内容。所以当我运行例如:
jQuery("#wpbody-content").html(jQuery("#wpbody-content").html().replace(/Form/gi, 'Block'));
它最终会替换那些内联javascript插入(例如使用ajax创建新表单)中单词"form"的重要实例。
我想知道是否有人有任何想法,我如何做一个词的"形式"的所有实例的替换,实际上是html,而不是任何内联javascript的一部分?
I'm trying to get this:
<div class="#wpbody-content">
<div class="setting-row">
<label for="new_form_description">Form Description</label><br>
<textarea class="regular-text" id="new_form_description" tabindex="9001"></textarea>
</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
loadNewFormModal();
function loadNewFormModal() {
resetNewFormModal();
tb_show('Create a New Form', '#TB_inline?width=375&inlineId=gf_new_form_modal');
jQuery('#new_form_title').focus();
return false;
}
}
</script>
</div>
变成:
<div class="#wpbody-content">
<div class="setting-row">
<label for="new_form_description">Module Description</label><br>
<textarea class="regular-text" id="new_form_description" tabindex="9001"></textarea>
</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
loadNewFormModal();
function loadNewFormModal() {
resetNewFormModal();
tb_show('Create a New Form', '#TB_inline?width=375&inlineId=gf_new_form_modal');
jQuery('#new_form_title').focus();
return false;
}
}
</script>
</div>
而不是this:
<div class="#wpbody-content">
<div class="setting-row">
<label for="new_Block_description">Block Description</label><br>
<textarea class="regular-text" id="new_Block_description" tabindex="9001"></textarea>
</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
loadNewBlockModal();
function loadNewBlockModal() {
resetNewBlockModal();
tb_show('Create a New Block', '#TB_inline?width=375&inlineId=gf_new_Block_modal');
jQuery('#new_Block_title').focus();
return false;
}
}
</script>
</div>
您可以这样做:
- 在所有内容中搜索所需的单词(形式)
- 检查父字是否为SCRIPT
- 用替换后的单词 修改该标签的内容
$(function(){
$('*:contains("Form")').each(function(){
if($(this).children().length < 1){
if($(this).prop("tagName") != "SCRIPT"){
//$(this).html().replace(/Form/gi, 'Block');
$(this).html($(this).html().replace(/Form/gi,"Block" ));
}
}
});
});