jquery替换文本

时间:2011-12-01 14:11:23

标签: jquery

我正在尝试使用jQuery(1.7.1)来简单地更改页面上的一些渲染文本。我要改变的文字是“我喜欢它”以“标记这个”。我已经设法为文本执行此操作,但不是为工具提示等。我只希望更改发生在正确的容器中(不是页面宽)。我是jQuery的新手,所以我可能完全以错误的方式做这个并且过于复杂! :)

我已经在这里创建了一个jsfiddle,其中包含源HTML: http://jsfiddle.net/44rMF/

这是我尝试更改文本,但显然不是工具提示等:

$(document).ready(function () {

    $('.ms-socialNotif-text').each(function () {
        var text = $(this).text();
        $(this).text(text.replace('I Like It', 'Tag This'));
    });

});

6 个答案:

答案 0 :(得分:3)

对于工具提示,您必须替换title属性的值,如下所示:

$('a').each(function () {
    var text = $(this).attr('title');
    $(this).attr('title', text.replace('I Like It', 'Tag This'));
  });

答案 1 :(得分:1)

这应该可以解决问题。您可以使用attr()更改任何属性。您可以使用它来获取属性内容或设置它。我已将此添加到您的示例中。

$(document).ready(function () {
    $('.ms-socialNotif-text').each(function () {
         $(this).text('Tag This');
         $(this).attr("title", "your new title");
    });
});

答案 2 :(得分:1)

您正在使用类选择器,它选择具有特定类的所有元素。 如果您只想在页面中选择一个元素,请使用ID选择器

$('#the_id')

答案 3 :(得分:1)

试试这个:

$(document).ready(function () {
    $('.ms-socialNotif-text').each(function () {
        $(this)
            .text("Tag this")
            .prop({ 
                "title": "Tag this", 
                "alt" : "Tag this"
            });
    });
});

如果要更换整个文本,则无需使用replace()函数,只需使用text()设置该值即可。

此外,prop()方法会在您的元素上设置属性titlealt,这会使工具提示在悬停时显示相应的文字。

答案 4 :(得分:1)

如果我理解正确,应该这样做。它只会根据您的要求在容器中更改它:

$(document).ready(function () {
       var title = $('.ms-socialNotif-Container a').attr('title');
       var newTitle = title.replace('I Like It', 'Tag This');
       $('.ms-socialNotif-Container a').attr('title', newTitle);

    });

答案 5 :(得分:0)

如果您想更改工具提示内容,则需要更改title属性。

jQuery的attr()可以获取并设置属性。

您需要的是

$(document).ready(function(){

$('.ms-socialNotif-text').each(function () {
    var modifiedText = $(this).text().replace('I Like It', 'Tag This');
    $(this).text(modifiedText).attr('title', modifiedText);
});

});