【发布时间】:2014-12-01 19:16:44
【问题描述】:
我有一个检查 div 的函数,如果它存在,它会用来自 JSON 数组的匹配数据填充它。 Div 和数据具有相同的 id 和键,所以我希望能够将它们放在一个字符串中以获得更优雅的解决方案。但是,尝试将字符串元素应用于数据键的最后一个元素似乎不起作用。我得到“无法读取未定义的属性 '0'”
原码:
$.getJSON('myDataUrl', function(data) {
if ($("#title").length){document.getElementById("title").innerHTML=data.title};
if ($("#noun").length){document.getElementById("noun").innerHTML=data.noun};
if ($("#_id").length){document.getElementById("_id").innerHTML=data._id};
if ($("#owner_id").length){document.getElementById("owner_id").innerHTML=data.owner_id};
});
我想要达到的更“优雅”的解决方案:
$.getJSON('myDataUrl', function(data) {
var contentString = "name,noun,_id,owner_id";
var splitContent;
splitContent = contentString.split(",");
for(i = 0; i < splitContent.length; i++)
{if ($("#" + splitContent[i]).length){
document.getElementById(splitContent[i]).innerHTML=data.splitContent[i];
};
}
【问题讨论】:
-
如果使用jQuery,你不需要检查长度
-
我通过这个接受的答案来检查是否存在 div stackoverflow.com/questions/31044/…
-
您不需要使用 jQuery 检查元素是否存在,因为仍然可以处理空的 jQuery 对象而不会引发错误
标签: javascript jquery string for-loop split