提问者:小点点

JavaScript…为什么这不进入if语句的else部分呢?


请参阅这里的CodePen.。。 [https://codepen.io/johnstonf/pen/qbbbpav?editors=1011]

JavaScript.。。 当条件变量显示should时,为什么这不进入if语句的else部分。 它第一次工作(点击按钮),但第二次,它应该反转功能,清除剪贴板,但它再次做if节。

<div id="fj33">
    <h5>Sensitive Data For Clipboard</h5>
    <p>Sensitive Data Line 2</p>
</div>
<div id="fj34">
    <h5>Clipboard Cleared</h5>
    <p>Sensitive Data Gone</p>
</div>

<button id="fjCopyTxtButton" class="btn btn-primary" onclick="copyText()">Copy Text to Clipboard!!</button>

<script type="text/javascript">
  function copyText() {
    fjChk=fjCopyTxtButton.innerHTML.includes("COPIED");
    console.log("CURRENT-(Before-IF):",fjChk);
    if(fjChk != "true")
    {
      console.log("CURRENT1:",fjChk);
      //console.log("...now false");
      var range, selection, worked, fj, fj2;
      fj=document.querySelector('#fj33');
      fj2=fj.innerText
      console.log(fj2);
      var copyhelper = document.createElement("textarea");
      copyhelper.className = 'copyhelper'
      document.body.appendChild(copyhelper);
      copyhelper.value = fj2;
      fj3=copyhelper.value;
      copyhelper.select();
      document.execCommand("copy");
      document.body.removeChild(copyhelper);
      document.querySelector('#fjCopyTxtButton').style.backgroundColor='yellow';
      document.querySelector('#fjCopyTxtButton').style.color='red';
      document.querySelector('#fjCopyTxtButton').innerHTML = '<h3>Text COPIED</h3>';
    } else {
      console.log("CURRENT2:",fjChk);
      console.log("...now true in else section");   
      fj=document.querySelector('#fj34');
      fj2=fj.innerText
      console.log(fj2);
      var copyhelper = document.createElement("textarea");
      copyhelper.className = 'copyhelper'
      document.body.appendChild(copyhelper);
      copyhelper.value = fj2;
      fj3=copyhelper.value;
      copyhelper.select();
      document.execCommand("copy");
      document.body.removeChild(copyhelper);
      document.querySelector('#fjCopyTxtButton').style.backgroundColor='green';
      document.querySelector('#fjCopyTxtButton').style.color='black';
      document.querySelector('#fjCopyTxtButton').innerHTML = '<h3>Text CLEARED</h3>';
  }};


 </script>

共1个答案

匿名用户

if (fjChk != "true")

您正在检查字符串“true”,但fjChk不是字符串。 您需要检查布尔值。

if (fjChk !== true)

if (!fjChk)