2017-03-27 5 views
-2
function() { 
    var element = document.getElementsByClassName("MagicZoomPlus")[0]; 
    var image = "https://www.mywebsite.com" + element.getElementsByTagName('img')[0].getAttribute("src"); 
    return image; 
} 

これは私の現在のコードですが、一部の画像はローカルに保存され、他の画像は異なるパスのCDNに保存されています。それはどうすればいいですか?返品にIf/Elseステートメントを使用することはできますか?

If img src starts with “/uploads” than 
var image = "https://www.mywebsite.com" + element.getElementsByTagName('img')[0].getAttribute("src"); 
Else than 
var image = element.getElementsByTagName('img')[0].getAttribute("src"); 
+2

提案していることを試しましたか? – Weedoze

+3

は、擬似コードをJSコードに変換するだけです。すなわちのIT –

+0

'関数(){' 'VAR要素= document.getElementsByClassName( "MagicZoomPlus")[0];' 'VAR画像=(element.getElementsByTagName( 'IMG')[0] .getAttribute(」 "src")startsWith( '/ uploads')? "https://www.mywebsite.com": "") ' ' + element.getElementsByTagName( 'img')[0] .getAttribute( "src"); ' リターンイメージ; } ' –

答えて

1

変数を使用し、querySelector()で選択すると、かなり短くできます。

また、ifステートメントを使用してコードフローを指示し、.startsWith()メソッドは.srcが値で始まることをチェックします。

function myFunc() { 
    var img = document.querySelector(".MagicZoomPlus img"); 
    if (img.src.startsWith("/uploads")) { 
    return "https://www.mywebsite.com" + img.src 
    } 
    return img.src 
} 

ですから、最初MagicZoomPlus要素の最初のimgを望んでいたことから、我々は単に直接.querySelector()で画像を取得するために、あなたはCSSで使うもののようなセレクタを構築することができます。すべてのマッチした要素を返します.querySelectorAll()その対応..

"/uploads"と画像のsrc起動した場合はその後、我々はすぐにimg.src"https://www.mywebsite.com"の連結を返します。

我々はifに返されるので、私たちはそう残っているすべてはif条件が失敗した場合img.srcを返すことです、else枝を必要としません。

名前がないので、関数の無効な構文が修正されました。

+0

これは魅力的です。ありがとうございました – Matty2Shoes

+0

よろしくお願いします。 –

0

したがって、ternary operatorを使用してください。私はそれが権利を取得するために、条件として、あなたの仕事をあなたの擬似コードを左

var image = ''; 
var valueIfTrue = "https://www.mywebsite.com" + element.getElementsByTagName('img')[0].getAttribute("src") 
var valueIfFalse = element.getElementsByTagName('img')[0].getAttribute("src") 
image = image src starts with "/uploads" ? valueIfTrue : valueIfFalse 

:私はあなたが三元の構文を使用することができます

var element = document.getElementsByClassName("MagicZoomPlus")[0], 
    path = element.getElementsByTagName('img')[0].getAttribute("src"), 
    prefix = path.indexOf("/uploads")===0 ? "http://www.example.com" : ""; 
return prefix + path; 
1
function() { 
    var element = document.getElementsByClassName("MagicZoomPlus")[0]; 
    var src = element.getElementsByTagName('img')[0].getAttribute("src"); 
    var prefix = src.startWith('/uploads') ? "https://www.mywebsite.com" : ""; 
    var image = prefix + src; 
    return image; 
} 

これをチェックしてください!オペレーター。 ?演算子はifのように動作します。式がtrueの場合、左側の:演算子は、それ以外の場合は右側に使用されます。

関連する問題