我正在尝试用 jQuery 翻译一些短语。这段代码大部分都很好用:
changeText = function(text, newText){
var currentText = $('span.example').html();
$('span.example').html(currentText.replace(text,newText)); };
window.setTimeout(function(){changeText("TranslateMe", "Translation")}, 0000);
但是,当您等待 ajax 生成的结果时,它几乎没有用。澄清一下 - 这是一个具有以下过程的搜索脚本:
当您单击搜索时,您会“正常”加载页面的一部分。我可以毫无问题地更改这些文本字符串。
之后,我猜是通过 ajax 动态加载的结果,并且有 div“块”一个接一个地被加载。这些短语不会被翻译。
一种解决方法是等待一段时间,直到所有内容都加载完毕,然后它确实适用于某些部分。例如:
window.setTimeout(function(){changeText("TranslateMe", "Translation")}, 20000);
但是,这不是一个好的解决方案,因为用户在一段时间内会以这种方式看到未翻译的字符串。
因此,我正在寻找一种在显示字符串时会更改字符串的解决方案。有没有办法做到这一点?
提前致谢!
编辑:
尝试查理的方法:
<script>
changeText = function(text, newText, $el) {
$el.html(function(i, currentText){
return currentText.replace(text, newText);
});
};
$(function(){
changeText(text, newText,$('span.example'));
});
$.ajax({
success:function(data){
var $changeEl=$(data).find('span.example');
changeText(text, newText,$changeEl);
var currentText = $('span.example').html();
$('span.example').html(currentText.replace(TranslateMe,Translation));
};
})
})
</script>