1

私は初心者で、厄介なjqueryコードを継承しています。エラーが見つかった場合にその文字列を別の文字列に置き換える方法を見つけようとしています。これは元のコードです。

    W.load = function (b) {
    var c, d, g = W.prep; S = ! 0, Q = ! 1, O = x[P], b || _(a.extend(J, a.data(O, e))), ba(l), ba(h, J.onLoad), J.h = J.height? Z(J.height, "y") - M - K: J.innerHeight && Z(J.innerHeight, "y"), J.w = J.width? Z(J.width, "x") - N - L: J.innerWidth && Z(J.innerWidth, "x"), J.mw = J.w, J.mh = J.h, J.maxWidth &&(J.mw = Z(J.maxWidth, "x") - N - L, J.mw = J.w && J.w < J.mw? J.w: J.mw), J.maxHeight &&(J.mh = Z(J.maxHeight, "y") - M - K, J.mh = J.h && J.h < J.mh? J.h: J.mh), c = J.href, V = setTimeout(function () {
        B.show()
    },
    100), J.inline?(Y().hide().insertBefore(a(c)[0]).one(l, function () {
        a(this).replaceWith(z.children())
    }), g(a(c))): J.iframe? g(" "): J.html? g(J.html): $(c)?(a(Q = new Image).addClass(f + "Photo").error(function () {
        //J.title = ! 1, g(Y("Error").text("This image could not be loaded"))
        J.title = ! 1, a(this).href.replace('http://www.old.com','http://www.new.com');
    }).load(function () {
        var a; Q.onload = null, J.scalePhotos &&(d = function () {
            Q.height -= Q.height * a, Q.width -= Q.width * a
        },
        J.mw && Q.width > J.mw &&(a =(Q.width - J.mw) / Q.width, d()), J.mh && Q.height > J.mh &&(a =(Q.height - J.mh) / Q.height, d())), J.h &&(Q.style.marginTop = Math.max(J.h - Q.height, 0) / 2 + "px"), x[1] &&(P < x.length - 1 || J.loop) &&(Q.style.cursor = "pointer", Q.onclick = function () {
            W.next()
        }), m &&(Q.style.msInterpolationMode = "bicubic"), setTimeout(function () {
            g(Q)
        },

コードをこれに変更しました。

J.title = ! 1, a(this).href.replace('http://www.old.com','http://www.new.com');

しかし、それは機能していません。Ggr!どんな助けでも大いに感謝されるでしょう。:)

アップデート*

上記のコードは、私が作業しているセクションの完全なコードです。

更新#2

この答えは機能しますが、私はする必要があります...

a(this).attr('src', function(i, current){ 
 if ( i === 'http://www.old.com'){
 return current.replace('http://www.old.com','http://www.new.com');
 }
 else if ( i === 'http://www.older.com'){
 return current.replace('http://www.older.com','http://www.new.com');
}
 else ();
 })

これは機能していません!! ヘルプ!!

4

2 に答える 2

1

試す

this.href.replace('http://old.com/' , 'http://new.com/');

現在の要素の実際の属性を新しい属性に変更する場合は、

this.href = this.href.replace('http://old.com/' , 'http://new.com/');

<a>要素を参照するハンドラー内にいて、thisそのオブジェクトを参照し、そのプロパティにアクセスするために jquery オブジェクトを作成する必要がない場合、リンクthis.hrefのプロパティを直接参照します。href


免責事項:これは難読化/エンコードされたスクリプトであり、これが生成された元のオリジナルを見つけたほうがよいでしょう..このコードは意味がなく、私たちの提案は本当に盲目的です..

一見したところ、はリンクではなく画像のように見えるため、新しい画像を表示する場合は、画像に存在しない ではなく、属性thisを変更する必要があります。srchref

a(this).attr('src', function(i, current){ return current.replace('http://www.old.com','http://www.new.com');})

ただし、それがへの参照でconsole.log(a.fn.jquery)あることを確認するために、そこでも実行する必要がありますajQuery

于 2012-12-31T12:09:31.927 に答える
0

交換する必要がありますか? URLを変更したいだけなら、すぐにできます。

J.title = ! 1, $(this).attr('href', 'http://new.com/*');

現在の URL を指定された新しい URL に置き換えます。

于 2012-12-31T12:05:17.143 に答える