JS / JQuery字符问题

时间:2010-05-31 21:53:19

标签: javascript jquery character

我有一个代码,其中包含JS无法正常处理的字符。

$(document).ready(function(){


    $.getJSON("http://sjama.tumblr.com/api/read/json?callback=?",
        function (data){
            for (var i=0; i<data.posts.length; i++){

                    var blog = data.posts[i];

                    var id = blog.id;
                    var type = blog.type;

                    var photo = blog.photo-url-250;

                    if (type == "photo"){

                        $("#blog_holder").append('<div class="blog_item_holder"><div class="blog_item_top"><img src='+photo+'/></div><div class="blog_item_bottom">caption will go here</div></div>');
                    }

            }

        }); <!-- end $.getJSON

});

问题在于这一行:

   var photo = blog.photo-url-250;

在“博客”之后。它因为它们之间的破折号( - )而奇怪地读取“url”部分。

我可以做些什么来解决这个问题?

5 个答案:

答案 0 :(得分:1)

您需要使用字符串文字访问方括号中的属性。

blog["photo-url-250"];

同样,在创建具有无效名称字符(例如连字符)的对象属性时,您将使用字符串文字。

var blog = {
               someProperty: "someValue",     // Name has valid characters.
               "some-property": "some-value"  // This name requires a string literal.
           }

有效字符包括字母,数字,下划线和$。

答案 1 :(得分:1)

使用此代替

var photo = blog['photo-url-250'];

阅读本文(http://javascript.about.com/od/variablesandoperators/a/vop04.htm)了解适用于变量命名的规则..

您的代码可以被理解为set photo to blog.photo minus url minus 250

var photo = blog.photo - url - 250;

答案 2 :(得分:1)

你能把它写成博客[“photo-url-250”]

答案 3 :(得分:1)

这是一个应该包含在[]中的属性,例如:

var photo = blog["photo-url-250"];

答案 4 :(得分:1)

使用其他表示法:

var photo = blog['photo-url-250'];