以下の画像が存在する場合
<img id="youtubeimg" src="http://i1.ytimg.com/vi/VK4ah66jBvE/0.jpg"/>
そして、スクリプトは
<script>
var youtubeimgsrc = "something here"
document.write(''+youtubeimgsrc+'')
</script>
結果はhttp://i1.ytimg.com/vi/VK4ah66jBvE/0.jpg
になります
画像ソースを取得して変数として設定するにはどうすればよいですか。
スクリプトがafterimg
である限り:
_var youtubeimgsrc = document.getElementById("youtubeimg").src;
_
DOM仕様の getElementById
を参照してください。
スクリプトがbeforeimg
である場合、もちろんimg
はまだ存在していません。動作しません。これが、多くの人がbody
要素の最後にスクリプトを置くことを推奨する理由の1つです。
サイドノート:絶対URLを使用したので、あなたの場合は関係ありませんが、属性でrelativeURLを使用した場合、この:
_<img id="foo" src="/images/example.png">
_
... src
反映されたプロパティは、resolvedURL —つまり、変換される絶対URLです。したがって、それがページ_http://www.example.com
_にある場合、document.getElementById("foo").src
は_"http://www.example.com/images/example.png"
_を提供します。
src
属性のコンテンツをそのままにしたい場合、解決せずに、代わりにgetAttribute
を使用します:document.getElementById("foo").getAttribute("src")
。上記の例で_"/images/example.png"
_が得られます。
質問のような絶対URLがあれば、それは問題ではありません。
たとえば、これについてはどうですか:
var youtubeimgsrc = document.getElementById("youtubeimg").getAttribute('src');
画像にidがなく、親divがある場合、これも使用できるテクニックです。
<div id="myDiv"><img src="http://www.example.com/image.png"></div>
var myVar = document.querySelectorAll('#myDiv img')[0].src
この状況では、getElementById
を使用してidで要素を取得し、.src
var youtubeimgsrc = document.getElementById("youtubeimg").src;
var youtubeimgsrc = document.getElementById('youtubeimg').src;
document.write(youtubeimgsrc);
ここにあなたのためのフィドルがあります http://jsfiddle.net/cruxst/dvrEN/
簡単なJQueryを使用します。
次のように、JQueryライブラリをheadのhtmlファイルに含めます。
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
(このスクリプトタグがHTMLファイル内の他のスクリプトタグの前にあることを確認してください)
JavaScriptファイルのIDを次のようにターゲットにします。
<script>
var youtubeimcsrc = $('#youtubeimg').attr('src');
//your var will be the src string that you're looking for
</script>