我有两个代码示例,第一个正常工作,第二个没有。当我点击#incrementBtn时,它们都应该增加一个计数器。
以下是样本(我将提供所有代码以供进一步澄清):
$('body').on('click','#incrementBtn', function(){
let textAreaValue = parseInt($('textarea').val());
$('textarea').val(textAreaValue+1)
});
$('#incrementBtn').on('click', function(){
let textAreaValue = parseInt($('textarea').val());
$('textarea').val(textAreaValue+1)
});
还有一个问题,使用它有什么区别(代码不起作用):
let textArea = $(<'textarea'>);
let textAreaValue = parseInt(textArea.val());
textArea.val(textAreaValue+1);
这个(代码有效):
let textAreaValue = parseInt($('textarea').val());
$('textarea').val(textAreaValue+1)
以下是完整的工作代码:https://jsfiddle.net/wjnjdk72/3/
答案 0 :(得分:1)
第一期:
在将元素动态插入DOM之前,您将onclick处理程序应用于该元素。 body处理程序可以工作,因为它正在从与#incrementBtn选择器匹配的元素中侦听body元素上的click事件(它向上冒泡)(如果稍后将它添加到页面中则无关紧要。)
您可以通过交换订单来查看此操作,如果首先添加元素,则可以使用
incrementCounter('#wrapper'); // add the element first
$('#incrementBtn').on('click', function(){
let textAreaValue = parseInt($('textarea').val());
$('textarea').val(textAreaValue+1)
});
第二期:
此语法无效Javascript:$(<'textarea'>);
您添加了一些随机&lt;&gt;那里。
答案 1 :(得分:0)
使用jQuery,您只选择名称为&#34; textarea&#34;的HTML标记,您不需要包含&lt;&gt;人物