AJAX刷新HTML后锚点标签(Anchor Tag)无法点击的问题
AJAX更新后锚点标签失效的解决办法
你的核心问题是AJAX成功回调里的DOM更新逻辑错误:直接用纯数字替换了#upvote-count的全部内容,把原来的<a>标签彻底覆盖了,导致后续无法点击跳转。
解决办法一:只更新锚点内的文本(推荐)
不需要替换整个<div>的内容,只修改<a>标签里的数字即可,这样能保留锚点的完整结构和跳转功能:
success: function(response){ // 找到div里的a标签,只更新文本内容 document.querySelector('#upvote-count a').textContent = response['total_upvotes']; },
解决办法二:重新生成完整的锚点标签
如果因为某些场景需要重新生成<a>标签(比如URL可能动态变化),要在更新时完整构建HTML结构,不能只放数字:
success: function(response){ const upvoteDiv = document.getElementById('upvote-count'); // 重新渲染带href的a标签,复用初始的Django URL upvoteDiv.innerHTML = `<a href="{% url 'Suggestions:suggestion_upvotes' pk=suggestion_detail.id %}">${response['total_upvotes']}</a>`; },
额外修复:后端笔误问题
你的视图代码里返回的total_upvotes值错写成了total_downvotes,这会导致显示的点赞数不正确,需要修正:
return JsonResponse({'total_upvotes': suggestion.total_upvotes,"message":"success"})
内容的提问来源于stack exchange,提问作者Steve Smith
相关产品推荐
相关产品推荐

