0

我正在尝试使用以下代码替换网站上的文本:

<script type="text/javascript">
    $(document).ready(function () {
        $(function() {
            $(document.body).find('*').each(function() {
                var tmp = $(this).children().remove();
                var text = $(this).text();
                text = text.replace(/Vorname/g, "Firstname");
                $(this).text(text);
                $(this).append(tmp);
            });
        });
    });

</script>

HTML(片段)是这样的(由 SharePoint 生成):

<td style="padding:4px;">
<div>
    <label for="ctl00_IWS_WH_CPH_Content_ContactUsControl1_firstName">
        <span><font color='red'>*</font> Vorname (erforderlich):</span>
    </label>
</div>

上面的 jQuery 代码没有被执行... 对 jQuery 的引用已放在母版页中。

任何线索为什么这不起作用?

问候,托马斯

4

4 回答 4

1
$('.element').text("sometext");

我认为这是不对的

var text = $(this).text();
                text = text.replace(/Vorname/g, "Firstname");

你应该使用:

var text = $(this).text();
    text.replace("Vorname", "Firstname");

那么你应该更好地记录你的问题,我不明白你真正的问题。

于 2012-11-05T10:03:24.630 回答
1

我发现您正在使用两个文档就绪功能,您必须只使用一个:

Either : $(document).ready(function () {

or :     $(function() {

看看这是否有效。

谢谢

于 2012-11-05T10:08:39.423 回答
1

工作演示

检查 jsfiddle 链接以获取工作代码

 $(document).ready(function () {
$(document.body).find('*').each(function() {
                var tmp = $(this).children().remove();
                var text = $(this).text();
                text = text.replace(/Vorname/g, "Firstname");
                $(this).text(text);
                $(this).append(tmp);
            });
   });
于 2012-11-05T10:10:08.883 回答
0

在您的代码中,您正在剥离一些元素样式。如果您想保持布局,最好使用 html 而不是文本,但这实际上取决于您要查找的内容。

$(document).ready(function () {
   $('body').find('*').each(function() {                
       var html= $(this).html().replace(/Vorname/g, "Firstname");
        $(this).html(html);
    });
 });
于 2012-11-05T10:18:38.483 回答