我正在组织一个相当简单的投票'功能 - 用户点击链接,'操作'页面将投票添加到DB&返回投票数。这就是我现在拥有的;
<a onClick="vote(#tipID#);return-false;" class="post-add-icon inline-items" id="tipVote"><i class="far fa-heart"></i> #tipVotes#</a>
和JS;
<script>
function vote(num){$("#tipVote").load('/assets/a/vote/?vtype=tip&tipID='+num+'');}
</script>
这一切都很好,有一个例外 - 我有几个名为&#39; tipVote&#39;在页面上(输出是动态的)。虽然我可以通过添加id来改变div名称(即tipVote999,tipVote232等),但是我无法知道输出之前这些ID会是什么,当然这将是令人难以置信的&#39;凌乱&#39;复制每个id的代码。
所以,我的问题是这些是否可能;
我可以以某种方式将帖子限制回调用它的div吗?我确实尝试过(没有成功);
function vote(num) { $('this').load('/assets/a/vote/?vtype=tip&tipID=' + num + ''); }
或者,我可以通过onclick事件以某种方式发送变量,该事件也显示回发的div。在那种情况下,我也尝试过(再次没有成功);
function vote(num){ $("#tipVote' + num+'").load('/assets/a/vote/?vtype=tip&tipID='+num+''); }
我已经做了相当多的搜索,但没有发现任何事情 - 但我觉得这必须是以前被覆盖的事情。
帮助&amp;建议非常感谢!
答案 0 :(得分:2)
看起来你几乎就在那里;唯一的问题是一些错误嵌套的引号:
function vote(num){
$("#tipVote" + num).load('/assets/a/vote/?vtype=tip&tipID='+num);
}
假设div id类似于“tipVote123”,调用vote(123)
或vote('123')
会将数据加载到该div中。
或者,您可以从DOM读取ID,而不是将其作为参数传递给投票函数,使用任何DOM遍历从用户点击到您想要填充的特定div的链接中获取 - 但是因为它看起来就像你已经将tipID传递给函数一样,也可以使用它来代替读取DOM。
答案 1 :(得分:1)
我会这样做:(假设'#tipID#'是动态生成的唯一ID)
<div id="div_"+#tipID#>
<a href='#' class="tipVote post-add-icon inline-items" id= #tipID# ><i class="far fa-heart"></i> #tipVotes#</a>
</div>
假设jQuery
<script>
$(document).ready(function(){
$('.tipVote').click(function () {
var id = $(this).id();
var jqxhr = $.post( "/assets/a/vote/?vtype=tip&tipID='+id+''", function() {
//alert( "success" );
$('#div_'+id).html('<p>Voted</p>');
})
.fail(function() {
alert( "error" );
});
});
});
</script>