单击链接可在不使用jQuery的情况下更改图像的src

时间:2016-06-30 13:00:41

标签: javascript html

我想点击一个链接来更改图像的来源。这是我到目前为止所提出的:

HTML:

<a href = "#" id = "blabla" onclick = "changesrc(); return:false;">click</a> 
<div id = "bulb">
    <center><img src = "C:\Users\hp\Desktop\on.gif" style = "width:180px;height:270px;position:relative;top:25px;border:2px solid black;"></center>
</div>

JS:

function changesrc() {
    var work = document.getElementById('bulb');

    if (work.src.match(C:\Users\hp\Desktop\on)) {
       work.src = "C:\Users\hp\Desktop\off.gif";
    }
    else {
        work.src = "C:\Users\hp\Desktop\on.gif";
    }
}

我是javascript的初学者,所以请帮助我。据我说,点击a(用文本点击),函数更改src被执行。该函数。有一个可变的工作。工作通过id = bulb调用元素。如果该变量的(工作)src与我桌面上的图像匹配(打开灯泡) )然后它变为off,否则它变为on(好像它不在,这意味着它关闭,所以我们改变了)。

我从w3schools那里得到了帮助。我抬起了类似的问题。我甚至将work.src更改为bulb.src。仍然无法找到我的错误。请帮忙告诉我是什么导致这个!!!请不要jQuery,因为我还不知道。

3 个答案:

答案 0 :(得分:0)

if (work.src.match(C:\Users\hp\Desktop\on)) {

这应该匹配一个字符串?

if (work.src.match('C:\Users\hp\Desktop\on')) {

答案 1 :(得分:0)

您正在使用match函数,该函数需要RegExp作为参数。实际上我认为在你的情况下你可以只比较strings

if (work.src === 'C:\Users\hp\Desktop\on') {

答案 2 :(得分:0)

document.getElementById('bulb')不是图像。在您的代码中,您正在更改<div>的“src”。

将ID更改为图像,例如:

<a href="#" id="blabla" onclick="changesrc(); return false;">click</a> 
<div style="text-align:center;"">
<img id="bulb" src="http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/se/se-logo-med.png?v=d9b0b6647f17" style="width:180px;height:270px;position:relative;top:25px;border:2px solid black;">
</div>

和Javascript:

function changesrc(){
    var work = document.getElementById('bulb');

    if(work.src.indexOf('se/se-')){
       work.src = 'http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo-med.png?v=6f86a5fa447f';
    }
    else{
        work.src = 'http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/se/se-logo-med.png?v=d9b0b6647f17';
    }
}

<强>更新

“返回”已更正:onclick="changesrc(); return false;"