Jquery on.click问题

时间:2018-03-29 09:51:45

标签: javascript jquery

我有两个代码示例,第一个正常工作,第二个没有。当我点击#incrementBtn时,它们都应该增加一个计数器。

以下是样本(我将提供所有代码以供进一步澄清):

1

$('body').on('click','#incrementBtn', function(){
  let textAreaValue = parseInt($('textarea').val());
  $('textarea').val(textAreaValue+1)
});

2

$('#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/

2 个答案:

答案 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;人物