我正在尝试使用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'));
});
});
答案 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()
方法会在您的元素上设置属性title
和alt
,这会使工具提示在悬停时显示相应的文字。
答案 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);
});
});