Javascript параметр с массивом - PullRequest
0 голосов
/ 13 апреля 2020

    var show=[
    "p1",
    "p2",
    "p3"
    ];
    var n;
    function show(n){
        for(n=1;n<=3;++n){
  
   
    document.getElementById("show").innerHTML=show[n];
        }
    }
<button onclick="show(1)">b1</button>
    <button onclick="show(2)">b2</button>
    <button onclick="show(3)">b3</button>
        
    <p id="show"></p>

Я пытаюсь напечатать p1, p2, p3, когда нажимаю b1, b2, b3 соответственно. Как я могу это сделать.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Ваш код имеет несколько проблем.

Во-первых, не называйте вашу переменную и функцию с одинаковым именем. В этом примере вы можете переименовать массив как showArr.

Затем вам нужно удалить for l oop (это против того, что вы пытаетесь достичь). И вам нужно передать index - 1 при получении элемента массива с индексом.

И нет необходимости в переменной n в глобальной области видимости (это избыточно).

var showArr = [
  "p1",
  "p2",
  "p3"
];

function show(n) {
  document.getElementById("show").innerHTML = showArr[n - 1];
}
<button onclick="show(1)">b1</button>
<button onclick="show(2)">b2</button>
<button onclick="show(3)">b3</button>

<p id="show"></p>
1 голос
/ 13 апреля 2020

Только не используйте одно и то же имя show для переменной и функции:

var show = [
  "p1",
  "p2",
  "p3"
];

function showIt(n) {
  document.getElementById("show").innerHTML = show[n - 1];
}
<button onclick="showIt(1)">b1</button>
<button onclick="showIt(2)">b2</button>
<button onclick="showIt(3)">b3</button>

<p id="show"></p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...