-1

Google Chrome の拡張機能を作ろうとしています。jQuery を使用して Facebook のようなボタンを他のテキストに置き換えていますが、うまくいきif(this ==='like' || 'like2' || 'like3') else if (this ==='unlike' || 'unlike2' || 'unlike3')ません。

私のコード: いいえ: 私はこれを multi language に使用したいと思います。

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&#235;lqej' || like_message === ' Be&#287;en'){
        like.innerHTML = like_message;
    }
    if (like_message === 'Unlike' || like_message ===  'Nuk e p&#235;lqej' || like_message === 'Be&#287;enmekten Vazge&#231;'){
        like.innerHTML = "Tam";
    }
    }
}
4

2 に答える 2

0

Google Chrome の拡張機能を作ろうとしています

おい、まず基本的な JavaScript の知識を取得してください。(ブラウザ拡張機能を開発しようとしている場合は、実際には既にそれを持っているはずです。)

しかし、私が言うとき、if(this ==='like' || 'like2' || 'like3') else if (this ==='unlike' || 'unlike2' || 'unlike3')それは機能していません。

この方法では、変数が 3 つの値のいずれかを持っているかどうかを確認できません。演算子は== 演算子よりも優先されます。

したがって、コードが実際に行うことは、最初に比較値の論理 OR を実行し、次に比較を行うことです。つまり、基本的には、最初に記述した場合と同じですif( this === ('like' || 'like2' || 'like3') )

'like'空でない文字列は JS で true と評価されるため、式の値('like' || 'like2' || 'like3')常に 'like'this'like'if

if(this === 'like' || this === 'like2' || this === 'like3')あなたが実際に望むことをする正しい方法です。

于 2012-06-28T08:29:45.153 に答える
0

like_message = "Sarp!"for ループでは常に現在の値で上書きします。私はそれを修正し、名前を に変更しました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&#235;lqej' || like_message === ' Be&#287;en'){
            like.innerHTML = default_like_message;
        } else if (like_message === 'Unlike' || like_message ===  'Nuk e p&#235;lqej' || like_message === 'Be&#287;enmekten Vazge&#231;'){
            like.innerHTML = "Tam";
        }

    }
}

if2 番目のケースをに変更しましたが、前else ifに入力するのを忘れていました。varlike


以下は同じコードですが、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&#235;lqej' || like_message === ' Be&#287;en'){
            $(this).text(default_like_message);
        } else if (like_message === 'Unlike' || like_message ===  'Nuk e p&#235;lqej' || like_message === 'Be&#287;enmekten Vazge&#231;'){
            $(this).text("Tam");
        }

    });

}
于 2012-06-28T01:35:30.187 に答える