2017-08-30 116 views
0

我試圖讓點擊文本鏈接來改變它。爲什麼.innerHTML腳本無法正常工作?

這是我的代碼

if (document.getElementById("morecat").innerHTML === '1') 
 
\t \t document.getElementById("morecat").innerHTML = '2'; 
 
     else { 
 
     document.getElementById("morecat").innerHTML = '1'; 
 
    }
<a id="morecat" >1</a>

但是,它不工作,可以任你看這個問題?

+1

我切換到代碼片段,這是否仍適合你遇到的bug? –

+0

你在哪裏定義了函數'changeText()'? – Satpal

+0

您正在引用一個未定義的函數'changeText()',如果它確實存在,您應該將其包含爲您問題的一部分 –

回答

0

您需要將其包裝在changeText()方法調用中。

function changeText() { 
 
    if (document.getElementById("morecat").innerHTML === '1') 
 
    document.getElementById("morecat").innerHTML = '2'; 
 
    else { 
 
    document.getElementById("morecat").innerHTML = '1'; 
 
    } 
 
}
<a id="morecat" onClick="changeText()">1</a>

+0

我實際上沒有使用changetext函數,也從這個線程的html中刪除它。根據結果​​「1」不等於「1」,並切換到其他語句,使其成爲2. –

0

你必須寫changeText函數內部的代碼是這樣

function changeText(){ 
 
    if (document.getElementById("morecat").innerHTML === '1'){ 
 
     document.getElementById("morecat").innerHTML = '2'; 
 
    } 
 
    else { 
 
    document.getElementById("morecat").innerHTML = '1'; 
 
    } 
 
}
<a id="morecat" onClick="changeText()" >1</a>

+0

沒有必要投我的答案,因爲我幾秒鐘之前回答它。 – Sajal

+0

什麼?你什麼意思?? –

+1

@AKA只是一個建議。如果您在答案上收到了贊成票,請僅更新該答案。無需刪除併發布其他答案。 – Rajesh

1

你需要用分配給函數內部腳本的onClick()。

function changeText(){ 
 
    if (document.getElementById("morecat").innerHTML === '1'){ 
 
     document.getElementById("morecat").innerHTML = '2'; 
 
    } 
 
    else { 
 
    document.getElementById("morecat").innerHTML = '1'; 
 
    } 
 
}
<a id="morecat" onClick="changeText()" >1</a>

0

它的工作原理,因爲它應該:

  • <a id="morecat" >1</a> innerHTML的是字符串1
  • 給您的條件:if (document.getElementById("morecat").innerHTML === '1')它的內容設置爲字符串2
  • 2顯示

我添加了一個計時器「看到」它改變:

setTimeout(function(){ 
 
\t console.log("morecat value is " + document.getElementById("morecat").innerHTML); 
 

 
    if (document.getElementById("morecat").innerHTML === '1'){ 
 
    document.getElementById("morecat").innerHTML = '2'; 
 
    } 
 
    else { 
 
    document.getElementById("morecat").innerHTML = '1'; 
 
    } 
 
console.log("morecat value is " + document.getElementById("morecat").innerHTML); 
 
    
 
}, 3000);
<a id="morecat">1</a>

0

你必須定義一個名爲changeText函數用作事件監聽器。另外你不應該做不必要的getElementById電話。而對於變更,您可以使用邏輯短路代替if then else區塊。另外要提到的是檢查textContent屬性而不是innerHTML。如;

function changeText(){ 
 
    var mc = document.getElementById("morecat"); 
 
    mc.textContent === "1" && (mc.textContent = "2"); 
 
}
<a id="morecat" onClick="changeText()" >1</a>

相關問題