Handlebars.js 和每个助手:按钮问题
Handlebars.js and each helper : problem with buttons
我是 Handlebars.js 的新手。
我正在使用每个来显示一些 account.I 需要获取特定用户单击按钮的信息。我会用代码更具体。
{{#each accounts}}
<div class="form-group">
<p>{{@index}}</p>
<label for="name" value={{username}}>{{username}}</label>
</div>
<div class="form-group">
<label for="name">{{email}}</label>
</div>
<button id="myButton">chat</button>
{{else}}
<p>No account</p>
{{/each}}
<script>
const button = document.getElementById('myButton');
button.addEventListener('click', function(e) {
console.log('button was clicked');
const number = document.querySelector("p");
console.log(number);
});
</script>
如果我单击列表的第一个按钮,我可以访问数据,但是如果我尝试单击列表的其他按钮,我将无法访问信息。
例如,如果我点击第三个按钮,我想获取第三个帐户的车把信息。
您的循环中有一个 id="myButton"。 ID 应该是唯一的,并且使用您的代码,您将获得与您拥有的帐户一样多的带有 id="myButton" 的按钮。如果您想在所有按钮上添加事件,请尝试添加 class。
{{#each accounts}}
<div class="form-group">
<p>{{@index}}</p>
<label for="name" value={{username}}>{{username}}</label>
</div>
<div class="form-group">
<label for="name">{{email}}</label>
</div>
<button id="myButton{{@index}}" class="myButton">chat</button>
{{else}}
<p>No account</p>
{{/each}}
<script>
const buttons = document.getElementsByClassName('myButton');
buttons.addEventListener('click', function(e) {
console.log('button was clicked');
const number = document.querySelector("p");
console.log(number);
});
</script>
我是 Handlebars.js 的新手。 我正在使用每个来显示一些 account.I 需要获取特定用户单击按钮的信息。我会用代码更具体。
{{#each accounts}}
<div class="form-group">
<p>{{@index}}</p>
<label for="name" value={{username}}>{{username}}</label>
</div>
<div class="form-group">
<label for="name">{{email}}</label>
</div>
<button id="myButton">chat</button>
{{else}}
<p>No account</p>
{{/each}}
<script>
const button = document.getElementById('myButton');
button.addEventListener('click', function(e) {
console.log('button was clicked');
const number = document.querySelector("p");
console.log(number);
});
</script>
如果我单击列表的第一个按钮,我可以访问数据,但是如果我尝试单击列表的其他按钮,我将无法访问信息。 例如,如果我点击第三个按钮,我想获取第三个帐户的车把信息。
您的循环中有一个 id="myButton"。 ID 应该是唯一的,并且使用您的代码,您将获得与您拥有的帐户一样多的带有 id="myButton" 的按钮。如果您想在所有按钮上添加事件,请尝试添加 class。
{{#each accounts}}
<div class="form-group">
<p>{{@index}}</p>
<label for="name" value={{username}}>{{username}}</label>
</div>
<div class="form-group">
<label for="name">{{email}}</label>
</div>
<button id="myButton{{@index}}" class="myButton">chat</button>
{{else}}
<p>No account</p>
{{/each}}
<script>
const buttons = document.getElementsByClassName('myButton');
buttons.addEventListener('click', function(e) {
console.log('button was clicked');
const number = document.querySelector("p");
console.log(number);
});
</script>