jQuery .load结果进入'调用' div(而不是指定的id)?

时间:2018-02-01 19:26:57

标签: javascript jquery

我正在组织一个相当简单的投票'功能 - 用户点击链接,'操作'页面将投票添加到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;建议非常感谢!

2 个答案:

答案 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>