jQuery没有更新DOM元素HTML
jQuery not updating the DOM element HTML
我试图做一个向上/向下投票系统,但是当我从API得到响应时,我似乎无法针对我想要的元素,这是具有"得分"类的li内的跨度。
我的js处理程序
jQuery(document).ready(function($) {
function vote(obj, post_id,vote) {
if(vote && post_id) {
$.get('/ajax/vote', {
v: vote,
p: post_id
}, function(data){
//set the .score to the new count returned by API
console.log(data);
$(obj).child('li.score').html(data.votes);
});
}
}
$(document.body).on("click", ".upvote", function(obj){
console.log("Up Voted");
var post_id = $(this).closest(".card").prop('id').replace(/post-id-/, '');
vote(obj,post_id,1);
});
$(document.body).on("click", ".downvote", function(){
console.log("Down Voted");
// more to come
});
});
触发事件的html视图,以及它下面的"score"区域。
<div class="vote-controls col-xs-1">
<ul>
<li class="upvote"><a href="#" class="disable"><span class="fa fa-angle-up "></span><span class="sr-only">↑</span></a></li>
<li class="downvote"><a href="#" class="disable"><span class="fa fa-angle-down"></span><span class="sr-only">↓</span></a></li>
<li class="score"><span>0</span></li>
</ul>
</div>
li.score
不是obj
的子节点。鉴于该对象实际上是DOM对象点击通过传递$(this)
函数然后我想它应该是:
$(obj).parent('ul').children('li.score').html(data.votes);
问题是obj
是Event
对象而不是您的HTML元素。此外,没有child
方法。使用children
:
改变这一行:
vote(obj, post_id, 1);
:
vote($(this).parents('ul'), post_id, 1);
这将把ul
传递给vote()
函数。
和变化:
$(obj).child('li.score').html(data.votes);
:
$(obj).children('li.score').html(data.votes);
obj是事件对象,下面是你想做的
$(obj.currentTarget).siblings('li.score').find('>span').text(html.votes);
相关文章:
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- 更改元素HTML,但忽略最后一个子项
- 增加在选择元素HTML中搜索的时间
- Jquery无法获取元素html
- 从所选元素 html 上方的元素获取属性值
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 我需要一种新的方法来检测元素 HTML 是否有更改
- 获取父元素 html 以及子内容
- AngularJS指令:如何在ng-repeat中动态更改元素html
- html 属性中的引号被标记为 ”来自元素.html()的结果
- 在指令's链接中替换angular元素html
- 如果元素有子元素html元素
- 如何下推表格中的元素- HTML
- 如何在纯javascript中使用变量插入数组值,如元素HTML
- jQuery textilate .js -如何“重置”元素HTML并重新启动动画
- 将元素HTML附加到新附加的textarea中
- 在添加类的情况下,CSS 3的过渡是否不能与模板元素(HTML 5)一起工作?
- jQuery没有更新DOM元素HTML
- 在jQuery中更快地替换元素HTML