2017-03-03 92 views
0

我想根据目前的src使用JavaScript进行<img src="...">的简单切换。因此,如果单击图片#plus_1,脚本应检查字符串'plus'是否在src属性中,如果是,则应更改src属性。 不知道我犯了什么错误,非常感谢!使用JavaScript的Src属性开关

的JavaScript:

function ek_ak(id) { 
      var ement = document.getElementById(id); 
      if (ement.img.src.includes("plus") == true) { 
       ement.img.src == "minusred.png";} 
     } 

HTML

+1

提示:'=''VS =='' –

+3

= ement.img.src “minusred.png”' – Satpal

+0

和'includes'功能不支持由IE浏览器。 – degr

回答

1

几个要点:

  • ement已经是一个DOM元素:它没有img属性,但你可以访问它src直;
  • 正则表达式可以用来代替String#includes;
  • 您应该使用=作为赋值运算符,而不是==(宽松比较)。

function ek_ak (id) { 
 
    var ement = document.getElementById(id); 
 
    if (/plus/.test(ement.src)) { 
 
    ement.src = "minusred.png" 
 
    console.log(ement.src) 
 
    } 
 
}
<img src="plusred.png" id="plus_1" onclick="ek_ak('plus_1')" />

1
  • 您可以将元素直接发送到使用onclick="ek_ak(this)功能。这将避免不必要的调用来检索元素。
  • 要获得src,您只需致电element.src即可。元素是你的img
  • 呼叫.includes(..)返回一个布尔值。您不需要添加== true
  • 您正在使用element.src == "minusred.png==用于比较不分配的元素。您应该使用=

function ek_ak(element) { 
 
    console.log("Current src = " + element.src); 
 
    if (element.src.includes("plus")) { 
 
    element.src = "minusred.png"; 
 
    console.log("Next src = " + element.src); 
 
    } 
 
}
<img src="plusred.png" id="plus_1" onclick="ek_ak(this)" />