I only want to have the click add one count, not repeated additions to the content

StackOverflow https://stackoverflow.com/questions/22162725

  •  19-10-2022
  •  | 
  •  

سؤال

In class we are learning JavaScript, and we have to find out how to stop the button click from repeatedly adding the count with .insertbefore I'm stumped as to why it continually inserts the count.

      function clicked() {
            console.log("Clicked!");
            var count = "Node Count: "+countChildren(document.getElementById("content"));
            console.log(count);
      try {
            var span = document.createElement("span");
            span.innerHTML = count;
            document.getElementsByTagName("body")[0].insertBefore(span, document.getElementById("content"));
      } catch(ex) {
            console.log("error "+ex)
           }
      }

لا يوجد حل صحيح

نصائح أخرى

You need to check if the node is already added.

 var count = ...
 if ( count !== 0 ) {
      return;
 }

 try {
     ...
 }
 catch(ex) {
     ...
 }

Modify your button HTML like this

<input type ="button" onclick="clicked(); this.onclick=null;"/>

so when once click function is executed, this will stop further clicking actions

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top