2017-08-30 65 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>