如何将数据从JSON插入到javascript函数?

时间:2015-05-26 04:25:30

标签: javascript json

我是javascript的新手,我试着找一个星期的问题。

我的示例代码如下(所有代码都在head标签的html页面中)

//示例功能1

    function randomString(len, charSet) {
            charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
            var randomString = '';
            for (var i = 0; i < len; i++) {
            var randomPoz = Math.floor(Math.random() * charSet.length);
            randomString += charSet.substring(randomPoz,randomPoz+1);
        }
            return randomString;
    }



//example function 2
        function tests(randomString) {

                alert(randomString);

        }

//example function 3 pull data from JSON to div id test

        $(document).ready(function() { 
           $.getJSON("http://www.test.com/get_json_data.php?", {
                    cat_id: "3",
                    type:'GET',
                    dataType: 'json',
              }, function(data) {
                    $.each(data.items, function(i, item) {


                    $('#test').append('<a href="#" onclick="tests(randomString(5))"><img src="http://www.test.com/images/'+item.image+'"/></a>'); 

                  if (i == 10) return false;
                   });
              });
           });

我的问题是我想从JSON插入var例如&#34; item.id&#34;进入&#34; onclick&#34;我试图做的是

的onclick =&#34;测试(randomString(5)+ item.id)&#34;

我想看的结果是提醒5个随机字符,最后包括item.id,例如

xIyax33 (33 is item.id)
TwQpu34 (34 is item.id)
AERim35 (35 is item.id)

但始终显示错误&#34;项目未定义&#34;

如何更改代码以从JSON插入var?

1 个答案:

答案 0 :(得分:0)

您需要在名为randomString()的{​​{1}}函数中再添加一个参数,该函数将获取id。您需要将其附加到item.id

randomString

并将您的附加内容更改为

function randomString(len,id, charSet) {//See second param
     charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
     var randomString = '';
     for (var i = 0; i < len; i++) {
         var randomPoz = Math.floor(Math.random() * charSet.length);
         randomString += charSet.substring(randomPoz, randomPoz + 1);
     }
     return randomString+id; //+id
 }