我尝试为Google Chrome进行扩展,我使用jQuery将Facebook替换为按钮与其他文字,但是当我说if(this ==='like' || 'like2' || 'like3') else if (this ==='unlike' || 'unlike2' || 'unlike3')
时它不起作用。
我的代码: 不是:我希望这能用于多语言。
var like_message = "Sarp!";
$("body").mouseover(function(){
convertLikes();
});
convertLikes();
function convertLikes(){
var likes = document.getElementsByClassName('default_message');
//var butt = like_buttons[0];
for (var i = 0; i<likes.length; i++){
like = likes[i];
//like_message = like.getElementsByClassName('default_message')[0];
like_message = like.innerHTML;
if (like_message === 'Like' || like_message === 'E pëlqej' || like_message === ' Beğen'){
like.innerHTML = like_message;
}
if (like_message === 'Unlike' || like_message === 'Nuk e pëlqej' || like_message === 'Beğenmekten Vazgeç'){
like.innerHTML = "Tam";
}
}
}
答案 0 :(得分:0)
您始终使用for循环中的当前值覆盖like_message = "Sarp!"
。我修复了它并将其重命名为default_like_message
。
var default_like_message = "Sarp!";
convertLikes();
function convertLikes(){
var likes = document.getElementsByClassName('default_message');
for (var i = 0; i<likes.length; i++){
var like = likes[i];
var like_message = like.innerHTML;
if (like_message === 'Like' || like_message === 'E pëlqej' || like_message === ' Beğen'){
like.innerHTML = default_like_message;
} else if (like_message === 'Unlike' || like_message === 'Nuk e pëlqej' || like_message === 'Beğenmekten Vazgeç'){
like.innerHTML = "Tam";
}
}
}
我将您的第二个if
案例更改为else if
,但您忘记在var
之前键入like
。
这里的代码相同,但是jQuery
样式:
var default_like_message = "Sarp!";
convertLikes();
function convertLikes() {
$('.default_message').each(function() {
var like_message = $(this).text();
if (like_message === 'Like' || like_message === 'E pëlqej' || like_message === ' Beğen'){
$(this).text(default_like_message);
} else if (like_message === 'Unlike' || like_message === 'Nuk e pëlqej' || like_message === 'Beğenmekten Vazgeç'){
$(this).text("Tam");
}
});
}
答案 1 :(得分:0)
我尝试为Google Chrome扩展
老兄,请先获得一些基本的JavaScript知识。 (如果您正在尝试开发浏览器扩展程序,那么实际上已经了。)
但是当我说
if(this ==='like' || 'like2' || 'like3') else if (this ==='unlike' || 'unlike2' || 'unlike3')
时它不起作用。
你无法检查变量是否具有这三种值中的一种 - 因为||运算符的优先级高于==运算符。
所以你的代码实际上做的是首先对比较值进行逻辑OR,然后然后进行比较 - 所以基本上,就像你在第一个中写if( this === ('like' || 'like2' || 'like3') )
一样的地方。
由于'like'
作为非空字符串在JS中变为true,因此表达式('like' || 'like2' || 'like3')
的值总是 'like'
- 所以你是只是将this
与'like'
进行比较,而不是if
条件中的以下值之一。
if(this === 'like' || this === 'like2' || this === 'like3')
将是正确执行您实际想要的方式。