如何通过单击更改HTML中的文本

时间:2014-09-30 20:44:47

标签: javascript html

    function diffSign(div) {
      var sign = document.getElementById(div.id);
      if (XXXXX) {
        XXXXX
      } else {
        XXXX
      }
    }
<div data-toggle="collapse" data-target="#demo@(i.tostring)" id="Sign@(i.ToString)" onclick=diffSign(this)>+</div>

我想将+符号更改为 - 并且可以更改回来! THX

5 个答案:

答案 0 :(得分:1)

函数的div参数已经通过引用代表this

<强> jsBin demo

function diffSign(div){
    if (div.innerHTML === '+') {   // If has "+"
        div.innerHTML = '-';       // Set as "-"
    } else {                       // else? well...
        div.innerHTML = '+';
    }
}

或者您也可以这样做: jsBin demo using bitwise XOR (^=) and Ternary Operator(?:)

function diffSign(div) {      
   div.innerHTML = (div.io^=1) ? '-' : '+' ; 
}

<子> https://stackoverflow.com/a/22061240/383904

答案 1 :(得分:1)

function diffSign(div) {
  var sign = document.getElementById(div.id);
  sign.innerText = (sign.innerText === "+") ? "-" : "+";
}

但是如果你传入div,为什么还要再搜索一下?

function diffSign(div) {
  div.innerText = (div.innerText === "+") ? "-" : "+";
}
如果div参数是真实的div

也会有效... 确保此div只有+-符号以外的其他内容。

欢呼声。

答案 2 :(得分:0)

function diffSign(div) {
    var sign = document.getElementById(div.id);
    if (sign.innerHTML == '+') {
        sign.innerHTML = '-';
    } else {
        sign.innerHTML = '+';
    }
}
<div data-toggle="collapse" data-target="#demo@(i.tostring)" id="Sign@(i.ToString)" onclick=diffSign(this)>+</div>

答案 3 :(得分:0)

由于div是实际的DOM元素和javascript对象,因此您可以直接使用它并动态添加属性。

function diffSign(div) {
   //Add a new property to maintain the element's state on the first call, toggle it on subsequent calls
   div.useMinus = !div.useMinus;
   //set the text based on the current state.
   div.innerHTML = (div.useMinus ? '-' : '+');
}

答案 4 :(得分:-2)

您可以使用document.getElementById.innerHTML =&#34;您的新文字&#34; ........来更改文字。