как я предупреждаю название кнопок, добавленных в документ, используя для цикла в JavaScript - PullRequest
0 голосов
/ 31 августа 2018

я получаю количество кнопок, перебираю и добавляю эти кнопки в тело документа. но условие заключается в том, чтобы предупредить имя кнопки. Пожалуйста, помогите, нажмите кнопку, чтобы сообщить название этой кнопки.

var i;
for(i=0; i<10; i++){
    var btn = document.createElement("BUTTON");
    var t = document.createTextNode("Button" + i);
    btn.appendChild(t);
    document.body.appendChild(btn);
    if(btn.addEventListener){
        btn.addEventListener('click', function() { alert(btn.value);});    
    } else if(btn.attachEvent){ // IE < 9 :(
        btn.attachEvent('onclick', function() { alert(btn.value);});
    }
}

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Изменение на innerText или innerHTML работает!

    var btn = document.createElement("BUTTON");
    var t = document.createTextNode("Button" + i);
    btn.appendChild(t);
    document.body.appendChild(btn);
    if(btn.addEventListener){
        btn.addEventListener('click', function() { alert(btn.innerText);});    
    } else if(btn.attachEvent){ // IE < 9 :(
        btn.attachEvent('onclick', function() { alert(btn.innerText);});
    }
0 голосов
/ 31 августа 2018

В вашем коде есть некоторые ошибки, здесь код работает, сначала вы должны добавить свойство name, а во-вторых, в функции вы должны использовать «this», а не «btn».

Код JS и фрагмент кода, чтобы помочь вам.

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>    // Code goes here
    var i;

      for (i = 0; i < 10; i++) {
        var btn = null;
        btn = document.createElement("BUTTON");
        btn.setAttribute("name", i + "_name");
        var t = document.createTextNode("Button" + i);
        btn.appendChild(t);
        document.body.appendChild(btn);
        if (btn.addEventListener) {
          btn.addEventListener('click', function() {
            alert("i am button " + this.getAttribute("name"));
          });
        } else if (btn.attachEvent) { // IE < 9 :(
          btn.attachEvent('onclick', function() {
            alert("i am button " + this.getAttribute("name"));
          });
        }
      }
    <!DOCTYPE html>
    <html>

      <head>
        <link rel="stylesheet" href="style.css">
        <script src="script.js"></script>
      </head>

      <body>
        <h1>Hello Plunker!</h1>
        <script src="script.js"></script>
      </body>

    </html>
0 голосов
/ 31 августа 2018

Попробуйте btn.innerHTML вместо btn.value

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...