我有一个代码,其中包含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”部分。
我可以做些什么来解决这个问题?
答案 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'];