使用parseInt将整数值添加到字符串中,而不处理动态添加的内容
Add integer value to string using parseInt not working on dynamic added content
我的HTML看起来像这个
<span class="responsesCount"><b>0<b/></span>
<div class="addOne">submitResponse</div>
每次用户发布对注释的响应时,我都会使用Jquery将类(responseCount)增加一。
$(document).on("pagecreate",function(event) {
$(document).on('click', '.addOne', function(e) {
e.preventDefault();
var commentCount = ".responsesCount";
var num = $(commentCount).text();
var newnum = parseInt(parseFloat(num), 10)+1;
$(commentCount).text(newnum);
});
});
当页面第一次加载时,代码按预期的方式递增一
问题是,当我通过ajax将动态内容加载到页面中时,我得到了一个意外的结果,它似乎是连接的,而不是像预期的那样递增
0
1
12
13
14
15
2
实际输出如下:12 13 14 15 2
<span class="responsesCount"><b>12131415<b/></span>
我也使用过以下片段,但似乎都不起作用。
$(commentCount).text(parseInt(num) + 1);
$(commentCount).text(parseInt(num, 10) + 1);
$(commentCount).text(num + 1);
$(commentCount).text(num++);
$(commentCount).text(++num);
$(commentCount).text(num * 2);
var num = $(commentCount).text();
$(commentCount).text(parseInt(num) +1);
我用来将更多内容加载到页面中的代码。
$(document).on('click', '.moreResult', function(event) {
event.preventDefault();
var res = $(".feed:last").attr("id");
$.ajax({
url: "process/loadmore.php?lastid=" + res,
success: function(html) {
if(html) {
$(".addResults").append(html).trigger('create');
} else {
$(".moreResult").html("End!");
}
}
});
});
});
我整晚都在为这个问题烦恼,似乎什么都不管用!任何帮助都将不胜感激。感谢大家提前提供的帮助。
你为什么这么复杂?你真的需要解析吗?如果没有,看看这个演示:
使用的代码:
$(document).on("create",function(event) { // Your event is called create, isn't it ?
var count = 0;
$(".addOne").click(function(e) {
e.preventDefault();
$(".responsesCount").text(++count);
});
});
$(function(event) {
var count = 0;
$(".addOne").click(function(e) {
e.preventDefault();
$(".responsesCount").text(++count);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="responsesCount"><b>0<b/></span>
<div class="addOne">submitResponse</div>
如果是,那么看看这个:
$(document).on("create",function(event) { // Your event is called create, isn't it ?
$('.addOne').click(function(e) {
e.preventDefault();
var num = $(commentCount).text();
var newnum = parseInt(num, 10) + 1;
$(".responsesCount").text(newnum);
});
});
在上面的代码中,我清理了所有内容,以关注最重要的内容。您不应该执行parseInt(parseFloat(...))
,因为parseInt
正在等待string
,而parseFloat
返回float
。
$(function() {
$('.addOne').click(function(e) {
e.preventDefault();
var num = $(".responsesCount").text();
var newnum = parseInt(num, 10) + 1;
$(".responsesCount").text(newnum);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="responsesCount"><b>0</b></span>
<div class="addOne">submitResponse</div>
相关文章:
- 正在将事件处理程序添加到不存在的类
- Adobe Edge:动画完成时添加onComplete处理程序
- getSript在同一对象上多次添加处理程序
- 如何在此函数中添加处理时间
- 向调用全局javascript函数的对象添加处理程序
- 动态添加对象的jQuery事件处理程序
- MaskMoney.js无法处理动态添加字段
- 运行 AJAX 需要什么 - 将 jQuery 添加到页面处理 AJAX 调用
- 处理一个项目,想要添加以下菜单栏,并尽量减少向下滑动
- 如何将 Promise 添加到 javascript 中的事件处理程序
- 为什么hover()不能使用jquery处理添加的类
- 使用parseInt将整数值添加到字符串中,而不处理动态添加的内容
- 在 javascript 中添加事件处理程序的位置
- 为什么在模糊事件处理程序中添加setTimeout会修复“;掩蔽”;另一个单击处理程序的
- 通过Couchdb中的更新处理程序添加id和author字段
- 如何禁用 CKEditor 表行列添加处理程序
- jQuery通过向上/向下按钮滚动到下一个元素 - 如何为手动滚动添加处理,否则会混淆这一点
- 以编程方式添加处理程序来响应表单处理程序
- 仅为第一个按钮添加处理程序
- 当我添加处理程序时,Jquery提交不工作