2017-03-03 67 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)" />