Javascript 迭代对象';s属性
我有一个对象数组。每个对象都有一个标题和一个链接Javascript 迭代对象';s属性,javascript,Javascript,我有一个对象数组。每个对象都有一个标题和一个链接 [Object { title="Do it", reslink="http://img-9gag-ftw.9cac.../photo/a5PrnLE_460s.jpg"}, Object { title="\n \n ...le \n ", reslink="http://img-9gag-ftw.9cac.../photo/aE17NWG_460s.jpg"}, Object { title="\n \n ...es \n ", resli
[Object { title="Do it", reslink="http://img-9gag-ftw.9cac.../photo/a5PrnLE_460s.jpg"},
Object { title="\n \n ...le \n ", reslink="http://img-9gag-ftw.9cac.../photo/aE17NWG_460s.jpg"},
Object { title="\n \n ...es \n ", reslink="http://img-9gag-ftw.9cac...oto/a2Y5RqD_460s_v1.jpg"}]
我需要:
for(var i in objects){
var h1 = '<h1>' + objects[i].title + '</h1>';
var href = '<a href="' + objects[i].reslink + '">linkText</a>';
}
for(对象中的变量i){
变量h1=''+对象[i].标题+'';
var href='';
}
不一定是最简单(最短)的方法,但是使用domapi可能比使用innerHTML
之类的工具更干净(可能更快)
我的解决方案:
for (var i = 0; i < array.length; i++) {
var header = document.createElement('h1');
header.textContent = array[i].title;
// append the DOM element to another element (maybe to body)
document.body.appendChild(header);
var link = document.createElement('a');
link.setAttribute('href', array[i].reslink);
// append the DOM element
document.body.appendChild(link);
}
for(变量i=0;i
也许你不想把它附加到身体的末端,但你明白了。如果要将其附加到其他位置,请使用#getElementById()
或#querySelector()
查找父元素,然后将其附加到该位置。可以使用map
方法为每个数组项创建一个元素
例如,这将创建一个链接数组,其中title
属性为text,reslink
属性为href
:
var links = $.map(objects, function(o){
return $('<a>', { href: o.reslink }).text(o.title)[0];
});
使用for循环对它们进行迭代。然后使用jQuery的函数(,等等…)插入新元素
我不太清楚你想创造什么,但这里是。。。
例如:
for(var i=0; i < list.length; i++)
{
var titleElement = "<title>" + list[i].title + "</title>";
var linkElement = "<a href=" + list[i].reslink +">" + list[i].title + "</a>";
$('#whereToInsertSelector').append(titleElement);
$('#whereToInsertSelector2').append(linkElement);
}
for(变量i=0;i
以下是我认为您正在努力实现的目标
JavaScript
NineGagPosts=[{
标题:“不可能是唯一的”,
重新链接:“http://img-9gag-ftw.9cache.com/photo/avgPd9n_700b_v1.jpg"
}, {
标题:“这是一个**洞”,
重新链接:“http://img-9gag-ftw.9cache.com/photo/aqNLejQ_700b.jpg"
}, {
标题:“她看起来很有趣”,
重新链接:“http://img-9gag-ftw.9cache.com/photo/a2Y5K2E_700b_v1.jpg"
}];
window.addEventListener(“加载”,readPosts);
函数readPosts(){
对于(变量i=0,l=NineGagPosts.length;i
当页面加载(访问document.body
)时,我们调用readPosts()
函数,该函数将迭代所有帖子,为标题创建
元素,为实际帖子图像创建
元素,然后将它们附加到
中
希望这有帮助 因为它是一个数组,所以for循环将是最快的,您可以使用其他东西,例如JQuery或array.prototype.map或array.prototype.forEach
中的$。您可以提供一个示例,当我尝试使用其中任何一种语法时,我都会迷路。最简单的方法是你这样做的方式:让别人去做。不幸的是,这不是问题的关键。您需要向我们展示您尝试过但不起作用的内容。var$titles=arrOfObjects.map(函数(o){return$('',{title:o.title,href:o.reslink}})代码>谢谢,这太完美了。我使用这个结构有点错误。我将属性名而不是新变量放入(对象中的变量I)。
for(var i=0; i < list.length; i++)
{
var titleElement = "<title>" + list[i].title + "</title>";
var linkElement = "<a href=" + list[i].reslink +">" + list[i].title + "</a>";
$('#whereToInsertSelector').append(titleElement);
$('#whereToInsertSelector2').append(linkElement);
}
NineGagPosts = [{
title: "Can't be the only one",
reslink: "http://img-9gag-ftw.9cache.com/photo/avgPd9n_700b_v1.jpg"
}, {
title: "This a**hole",
reslink: "http://img-9gag-ftw.9cache.com/photo/aqNLejQ_700b.jpg"
}, {
title: "She looks fun",
reslink: "http://img-9gag-ftw.9cache.com/photo/a2Y5K2E_700b_v1.jpg"
}];
window.addEventListener("load", readPosts);
function readPosts() {
for (var i = 0, l = NineGagPosts.length; i < l; i++) {
var post = NineGagPosts[i];
var title = document.createElement("h1");
var image = new Image();
title.innerHTML = post.title;
image.src = post.reslink;
image.width = 250;
document.body.appendChild(title);
document.body.appendChild(image);
}
}