根据服务器

时间:2016-08-07 08:15:10

标签: javascript jquery html ajax

我目前正在尝试创建分页功能。我正在使用bootstrap for css和jQuery。

总共有8个包含标签的div。

在我的html文件中,我写了

<div id="articleArea" class="row">
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
 <div class="col-md-4 postTitle">
   <a href="#">post title</a>
 </div>
</div>

我想要做的是根据我的ajax调用的响应替换标签中的每个href。我将发布.ajax的成功部分,因为其他部分完全正常,与我的问题无关。我的ajax调用以json格式返回,var结果是一个数组,其中包含需要分配给postTitle div中每个标记的8个不同的href。

success: function(data){
var result = data["result"];
 for(i=0; i < result.length; i++{
     postTitle = result[i];
     $(".postTitle.a").html(postTitle);
 }
},

如果我执行此代码,会暂时显示一个href,但它会在一秒钟内消失。我怎样才能解决这个问题?如果有更好的方法来实现此功能,请做评论!很想听到任何反馈。

3 个答案:

答案 0 :(得分:1)

您需要对标记运行迭代,而不是在结果上运行迭代

$(".postTitle a").each(function(i) {
  postTitle = result[i];
  $(this).attr("href",postTitle);
});

这将遍历每个href标记并相应地替换值

编辑:它应该是.postTitle a

答案 1 :(得分:1)

您的选择器会选择所有元素

$(".postTitle.a")

您应该选择每个标记并设置其href,此外它还缺少一个空格:

$(".postTitle a").each(function(index, value){
   $(value).attr('href', result[index]);
});

答案 2 :(得分:-1)

$(document).ready(function() {
    $('#pdf').change(function() {
      var newurl = $('#pdf').val();
      $('a.target').attr('href', newurl);
    });
});