【问题标题】:JavaScript object properties - connect them together? [closed]JavaScript 对象属性 - 将它们连接在一起? [关闭]
【发布时间】:2013-05-04 00:52:27
【问题描述】:

我在一个数组中有 3 个对象。

myArray = [
{name: "iPhone", link: "www.apple.com"},
{name: "Nokia", link: "www.nokia.com"},
{name: "Google", link: "www.Google.com"}
]

如何创建一个循环并将属性放在一起以显示在页面上,如下所示:

iPhone 诺基亚 谷歌

点击后会有链接

谢谢!

【问题讨论】:

  • 让我们从“如何制作循环...”开始。你知道怎么做吗?还是刚刚开始?
  • 我知道循环。谢谢。
  • @BenDelton:那你的问题是什么?
  • 对不起,我已经修改了问题。我想做链接。请看一下。谢谢伯吉。
  • 请尝试展示您到目前为止所做的事情,并详细说明您遇到的问题。据任何人所知,您是一个绝对的初学者,甚至不知道如何创建循环或访问对象的属性。我们喜欢帮助那些正在努力但陷入困境的人。我们不太喜欢 StackOverflow 被视为免费代码服务。

标签: javascript jquery object properties


【解决方案1】:

你可以这样做:

myArray = [
           {name: "iPhone", link: "www.apple.com"},
           {name: "Nokia", link: "www.nokia.com"},
           {name: "Google", link: "www.Google.com"}
         ];
var myDiv = '<div>';
for(var i=0;i<myArray.length;i++){
    myDiv= myDiv+ '<a href=\"'+myArray[i].link+'\">'+myArray[i].name +'</a><br/>';
}
myDiv = myDiv + '</div>';
$('#someDiv').append(myDiv); // append it to some other div

享受吧!

【讨论】:

  • document.write? That's bad,不……说真的:完全是evil。只是不要这样做
  • 不知道 document.write 这么糟糕。更换了它。谢谢指教!!
【解决方案2】:

使用纯JS,会是这样的:

for(var i=0;i<myArray.length;i++){
    var a = document.createElement('a');
    a.href= myArray[i].link;
    a.text= myArray[i].name;
    document.body.appendChild(a);
}

但是使用 jQuery 会更容易:

您可以使用 jQuery .each()。它将遍历您的数组,您可以使用this 访问对象属性。

要建立一个链接,您需要创建一个 a 元素并使用 .attr().text() 评估其值

$.each(myArray, function(){
    var a = $('<a/>'); //The element itself
    a.attr('href', this.link) //The HREF
    a.text(this.name) //The text
    $('body').append(a) //Append to the body
})

【讨论】:

  • 我认为最好使用 jQuery 的通用迭代器 $.each() 而不是将对象数组传递给 jQuery 构造函数。
  • 最好不要向不懂循环或属性访问的新手推荐jQuery迭代。
  • 嗯我虽然这两种方法之间没有区别,除了$(x).each你不能传递一个对象,但$.each你可以。
  • @Bergi 那么为什么将这个问题标记为 jQuery?
  • @Karl-AndréGagnon:它可能有效,但根据文档,将数组传递给 jQuery 函数的唯一支持是当它是一个 DOM 元素数组时。最好坚持使用文档支持的语法。
【解决方案3】:

一个循环并将属性放在一起以显示在页面上

听起来你想创建一个 html 字符串:

var list = "<ul>";
for (var i=0; i<myArray.length; i++) {
    list += "<li><a href='"+myArray[i].link+"'>"+myArray[i].name+"</a></li>";
}
list += "</ul>";
$("body").html(list); // or something

【讨论】:

  • 对不起,我已经修改了问题。我想做链接。请看一下。谢谢。
  • 你没有看我的回答,是吗?它确实建立了链接。或者你想评论一下sameer的?
  • 太好了,我刚看到谢谢@Bergi !!!!
  • 你也知道如何制作,当我点击“iPhone”时,会出现一个新的“div”,里面有“www.apple.com”。 (使用 jquery)
  • 是的,这很简单。你试过什么?再问一个问题,并提供你的代码不起作用。
猜你喜欢
  • 2018-09-30
  • 2017-02-05
  • 1970-01-01
  • 2022-07-21
  • 2017-07-27
  • 2020-07-11
  • 2017-07-17
  • 1970-01-01
  • 2016-07-18
相关资源
最近更新 更多