onclick 循环提示
Looping prompt on onclick
所以我有一个 php 文件,它将内容从 MySQL 循环到不同的 div 中。每个 div 都有一个 id "name".$j++
。我在循环中放了一个按钮,只要单击它就会显示提示。每个按钮还有一个id为"button".$i++.
我想让提示框中的输入显示在div的末尾。 (每个 div 都不同。)
使用我当前的代码,我只能在每个 div 的末尾显示一个输入。当我尝试将第二个添加到 div1 时,它会自动转到 div2 等等......
JS
var n = (<?php echo $i; ?>);
for(var i=0; i<=n; i++){
for(var j=0; j<=n; j++){
document.getElementById("button"+i).onclick = function() {
var money;
money = prompt("Write something here:");
if(money === null){
return;
}else{
$("<p> " + money + "</p>").appendTo("#div"+ j++);
}
}
}}
图片
据我所知,MySQL 循环与手头的问题无关,appendTo("#div"+ j++)
中变量 j
的值在循环之外,所以在触发 onclick 函数时不是您所期望的。
因此,使用单个循环为每个 div/button 组设置 onclick 事件,并使用 bind
函数方法将当前作用域锁定到传递给onclick 事件处理程序(因此锁定 j
的当前值),并将 j
(为清楚起见,以 jj
的形式)传递给该函数。
for(var j=1; j<=n; j++){
document.getElementById("button"+j).onclick = function(jj) {
var money;
money = prompt("Write something here:");
if(money === null){
return;
}else{
$("<p> " + money + "</p>").appendTo("#div"+ jj++);
}
}.bind(this, j);
}
所以我有一个 php 文件,它将内容从 MySQL 循环到不同的 div 中。每个 div 都有一个 id "name".$j++
。我在循环中放了一个按钮,只要单击它就会显示提示。每个按钮还有一个id为"button".$i++.
我想让提示框中的输入显示在div的末尾。 (每个 div 都不同。)
使用我当前的代码,我只能在每个 div 的末尾显示一个输入。当我尝试将第二个添加到 div1 时,它会自动转到 div2 等等......
JS
var n = (<?php echo $i; ?>);
for(var i=0; i<=n; i++){
for(var j=0; j<=n; j++){
document.getElementById("button"+i).onclick = function() {
var money;
money = prompt("Write something here:");
if(money === null){
return;
}else{
$("<p> " + money + "</p>").appendTo("#div"+ j++);
}
}
}}
图片
据我所知,MySQL 循环与手头的问题无关,appendTo("#div"+ j++)
中变量 j
的值在循环之外,所以在触发 onclick 函数时不是您所期望的。
因此,使用单个循环为每个 div/button 组设置 onclick 事件,并使用 bind
函数方法将当前作用域锁定到传递给onclick 事件处理程序(因此锁定 j
的当前值),并将 j
(为清楚起见,以 jj
的形式)传递给该函数。
for(var j=1; j<=n; j++){
document.getElementById("button"+j).onclick = function(jj) {
var money;
money = prompt("Write something here:");
if(money === null){
return;
}else{
$("<p> " + money + "</p>").appendTo("#div"+ jj++);
}
}.bind(this, j);
}