写的ajax没效果,求各位老哥看看问题所在...

我的目的是,原本的a标签,href属性的值是假的,
想让用户在点击a标签后,改变href属性的值,导向一个连接,
这个链接是http://XXX.XXX.html/?key='data中name值'&tit='data中title值'这种形式。
而这个data后台传过来的数据,
里边是个数组[{"name":"呵呵","title":"123"},{"name":"哈哈","title":"4567"}],就是这样的数据,
然后要用ajax在后台传来数据的时候,将对应的值组合成链接的形式,传给a标签的href值,
使用户在点击的时候,跳转到每个a标签对应的页面。

PS:我是个新手,不是很懂,写的代码很有问题,可是我不知道该怎么办,求大佬们帮忙啊!跪谢了!

下面是代码部分:

<div class="xixi">

<a href="haha/form.html">1</a>
<a href="haha/form.html">2</a>
<a href="haha/form.html">3</a>
<a href="haha/form.html">4</a>
<a href="haha/form.html">5</a>

</div>

<script>

$.ajax({
    type:"get",
    url:"aaa.json",
    success:function(data){
        $(".xixi a").on('click','a',function(data){
           for(var i = 0;i < data.length;i++){
               for(var j = 0;j < data.length[i];j++){
                   var zName = data[i][j].name;
                   var zTitle = data[i][j].title;
                   $(this).attr('href','haha/form.html?key="+zName+"&tit="+zTitle"');
               }
           }
        });
    }
})

</script>

另外,还有个问题要问各位老哥,我在chrome浏览器那里看ajax,老是看不了。
但是我在firefox里边看,却没有报错,是不是以后都可以用firefox看ajax有没有效果?

阅读 4.3k
5 个回答
$.ajax({
    type: 'get',
    url: 'aaa.json',
    success: function(data){
        // 遍历数据或者遍历 jQuery 对象
        $('.xixi > a').each(function(i,link){
            // 不明白你为什么要使用两次 for 循环查找数据;
            // 你的数组是一个二维数组,可以使用 data[0].name 这种格式访问;
            var name = data[i].name,
                title = data[i].title;
                
            // 绑定事件
            $(link).off()
            .on('click', function(e){
                // 我建议你尽量使用单引号(除非有特殊规定),这是个好习惯!
                $(this).attr('href','haha/form.html?key='+ name +'&title='+ title);
            });
            
        });
    }
})

首先 这是个什么 数组 [{"name":"呵呵","title":"123"},{"name":"哈哈","title"}:"4567"] ,这部分是个什么鬼 ,"title"}:"4567"

着实不是很明白楼主的意思~我就大概猜下:a标签的链接是通过ajax获得的,不是一开始就有的~另外 看到$符号,我就猜楼主用的jquery。具体的实现我下面的代码应该可以实现的~

页面加载后直接执行ajax,获得链接后修改所有a标签的链接。(楼主处理ajax结果这段,for循环,我看的不是很懂哦~)

<!doctype html>
<html>
<meta charset="utf-8">
<script src="./jquery-3.2.1.min.js"></script>

<body>
  <div class="xixi">

    <a href="#">1</a>
    <a href="#">2</a>
    <a href="#">3</a>
    <a href="#">4</a>
    <a href="#">5</a>
  </div>
</body>

<script>
  $(document).ready(function() {
    /*页面载入时候执行ajax*/
    $.ajax({
      type: "get",
      url: "aaa.json",
      success: function(data) {
        /*ajax成功或,改变所有的a标签的href*/
        for (var i = 0; i < data.length; i++) {
          for (var j = 0; j < data.length[i]; j++) {
            var zName = data[i][j].name;
            var zTitle = data[i][j].title;
            $(". xixi a").eq((i + 1) * (j + 1)).attr('href', 'haha/form.html?key="+zName+"&tit="+zTitle"');
          }
        }
      }
    })
  });

</script>

</html>

另外,chrome在哪里可以看ajax  F12打开开发者模式,然后选network
图片描述

href后边的字符串拼接的问题,不是ajax的问题哦

[{"name":"呵呵","title":"123"},{"name":"哈哈","title":"4567"}]
这是一个一维array,遍历里面的object,只需要一次循环就可以来组织name和title了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题