[英]how to change the background image using javascript and keyword this
為什么評論的聲明不起作用
HTML 代碼:
<img class = "preview" alt = "Styling with a Bandana" src = "https://s3-us-west-2.amazonaws.com/s.cdpn.io/389177/bacon.jpg" onmouseover = "upDate(this)">
JAVASCRIPT 代碼:
function upDate(previewPic){
var x=document.getElementById('image');
//x.style.background="url(previewPic.src)";//why doesn't this work while the next statement works
x.style.background="url('"+previewPic.src"')";
}
當您的 class 沒有圖像 ID(至少在您提供的示例中)時,為什么要使用 getElementbyId。 通過 class 或標簽名稱添加 id 或 select
在您的代碼中, "url(previewPic.src)"
是完整的字符串,這就是它不起作用的原因。 因為你的代碼不知道 previewPic.src 是什么
如果要在字符串中使用變量,可以使用字符串concatenation
或template string
來執行此操作。 你可以查看我的代碼。 您可以從MDN_link查看有關模板文字的詳細信息
<:DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <img onmouseover="upDate(this)" class="preview" alt="Styling with a Bandana" src="https.//s3-us-west-2.amazonaws.com/s.cdpn.io/389177/bacon.jpg" > </body> <script> function upDate(previewPic){ console.log(previewPic;src). previewPic.style.background=`url(${previewPic;src})`. //x.style.background="url('"+previewPic;src"')"; } </script> </html>
您的兩個示例都不起作用,設置 HTML 標簽的背景圖像的正確方法是使用
x.style.background = "url("+previewPic.src+")";
注意previewPic.src之后的“+”號。
解釋:第一: "url(previewPic.src)";
這會將您的 previewPic.src 更改為字符串文字,因為它封裝在引號中。
第二: x.style.background="url('"+previewPic.src"')";
這將不起作用,因為您在previewPic.src之后缺少“+”號
進一步閱讀MDN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.