未捕获的ReferenceError:未在HTMLButtonElement.onclick((index :: 1)

时间:2019-11-23 14:38:28

标签: javascript

当我使用html元素属性onClick="delete_player(1, test)时,控制台上显示错误消息Uncaught ReferenceError: test is not defined at HTMLButtonElement.onclick ((index):1)。我不希望它将参数作为变量传递,我希望将其作为字符串传递。但是无论我做什么,它都会将参数作为变量传递。 这就是为什么错误显示Uncaught ReferenceError: test is not defined 的原因。

在错误所指的文档中,只有一个功能。 delete_player(1, test)。我试图在javascript中将参数作为字符串传递,但是没有任何效果。

这是我的代码;

var ticket_per_player = 1;

function newPlayer() {
    var new_player_name = document.getElementById('new_player_input_name').value;
    if (new_player_name == "") {
      alert("Du måste skriva in ett namn Maarrcuuss! (trodde du att jag skulle gå på det där)");
    } else {
      document.getElementById('points').innerHTML += '<div class="spelare" id=' + ticket_per_player + '><h3 class="player-top" id="player-name">' + new_player_name + '</h3><button class="player-top" id="delete-player" onClick="delete_player('+ ticket_per_player + ', ' + new_player_name + ')">x</button><h4>Poäng:</h4><input type="number"></div>';
      ticket_per_player++; // HTML       
    }
}

function delete_player(ticket_per_player, player) {
    if (confirm("Är du säker du vill ta bort " + player + "?")) {
      document.getElementById(ticket_per_player).innerHTML = "";        
    } else {
      // Do nothing!
    }
}

尽管我希望大家都理解,即使代码中有一些瑞典语。 :)

提及该错误的主题或文章都没有对我有所帮助。这就是为什么我在这里问这个问题。

[编辑]

这是我的HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Mario Maker Counter</title>
    <link rel="stylesheet" href="style.css">

</head>
<body>
    <div class="container">
        <h1 class="title">odenCounter</h1>

        <div class="timer">
            <h2>odenTimer</h2>
        </div>

        <div class="points" id="points">
            <h2>odenPoäng</h2>

            <input type="" name="new_player_input_name" id="new_player_input_name">
            <button id="add-player" onClick="newPlayer()">Lägg till spelare</button>




            <div class="spelare" id="0">
                <h3 class="player-top" id="player-name">SpelareNamn</h3>
                <button class="player-top" id="delete-player" onClick="delete_player('0', 'SpelareNamn')">x</button>
                <h4>Poäng:</h4>
                <input type="number">
            </div>


        </div>
    </div>

    <script src="script.js"></script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

如果您尝试将字符串作为参数传递,则应使用这样的字符串文字:

onclick="delete_player(1, 'Test')"