道歉,如果这是一个愚蠢的问题,但我在这里解决了这个问题的答案,并对我的代码进行了更改,但没有进一步的运气。正如您所猜测的那样,主要问题是代码仅在第一次单击时运行,并且在此处不执行任何操作。
这是我的HTML:
<div class="Parent">
<input id="puck0" class="Pick" maxlength="2">
<input id="puck1" class="Pick" maxlength="2">
</div>
<p id="test"> TEST </p>
<button id="butt">GOGOGOG</button>
这会创建两个输入框,我想要更改的文本以使其工作,以及触发所有内容的按钮。
这是jQuery代码:
var choice = [0, 0];
$(function() {
$("#butt").on("click", function() {
$(".Pick").each(function(input, value) {
choice[input] = $(this).val();
});
$("#test").replaceWith(choice);
});
});
根据此类其他帖子的建议,我将开头的$(document).ready( function() {...
更改为$(function() {...
,因为前者仅触发一次。我还将.click
更改为.on( "click"...
,但没有运气。我甚至尝试将数组创建移动到单击内部,但仍然无法使其工作。它只运行一次:将输入放入数组并替换p,但如果更改输入,它将不再运行并执行相同操作。
我必须遗漏一些非常明显的东西,所以任何帮助都会很棒!
答案 0 :(得分:0)
事件(click
)工作得很好,问题在于这一行:
$("#test").replaceWith(choice);
它删除(实际上替换了......)p
元素,从那时起,p
在将来的调用中不存在......
我猜你真正想做的是:
$('#test').html(choice.join());