首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只显示数组中的一个项

只显示数组中的一个项
EN

Stack Overflow用户
提问于 2014-02-14 10:38:20
回答 2查看 126关注 0票数 0

使用下面的代码,单击超链接时,它会将数组项加载到品牌内容div中。例如,当您单击Nike超链接时,它只从数组中加载项目3,而缺少项目1和2?

代码语言:javascript
复制
 <?php
 $brand = array (
 "nike" => array (
            array('logo'=>'images/nike.png', 'description' =>'some nike text1'),
            array('logo'=>'images/nike.png', 'description' =>'some nike text2'),
            array('logo'=>'images/nike.png', 'description' =>'some nike text3')),
 "puma" => array(
            array('logo'=>'images/puma.png', 'description' =>'some puma text'),
            array('logo'=>'images/puma.png', 'description' =>'some puma text'),
            array('logo'=>'images/puma.png', 'description' =>'some puma text')),
 "addidas" => array(
            array('logo'=>'images/addidas.png', 'description'=>'some addidas text1'),
            array('logo'=>'images/addidas.png', 'description'=>'some addidas text2'),
            array('logo'=>'images/addidas.png', 'description'=>'some addidas text3')),
 "Asics" => array(
            array('logo'=>'images/Asics.png', 'description'=>'some Asics text'),
            array('logo'=>'images/Asics.png', 'description'=>'some Asics text'),
            array('logo'=>'images/Asics.png', 'description'=>'some Asics text')),
 "Qicksilver" => array(
            array('logo'=>'images/Qicksilver.png', 'description'=>'some Qicksilver text'),
            array('logo'=>'images/Qicksilver.png', 'description'=>'some Qicksilver text'),
            array('logo'=>'images/Qicksilver.png', 'description'=>'some Qicksilver text')),
  );
  ?>

<style type="text/css">
    a {
        margin-left: 10px;
    }
    #brand-content {
        margin-top: 50px;
        border: solid 1px #000;
        padding: 10px;
        display: none;
        width: 50%;
    }
    #brand-content img {
        margin-right: 25px;
    }

</style>

<script>var brand =<?php echo json_encode($brand) ?>;// json_encode($brand) is equivalent to the following:      {"nike":[{"logo":"images\/nike.png","description":"some nike text"},     {"logo":"images\/nike.png","description":"some nike text"},{"logo":"images\/nike.png","description":"some nike text"}],"puma":[{"logo":"images\/puma.png","description":"some puma text"},  {"logo":"images\/puma.png","description":"some puma text"},{"logo":"images\/puma.png","description":"some puma text"}],"addidas":[{"logo":"images\/addidas.png","description":"some addidas text"},{"logo":"images\/addidas.png","description":"some addidas text"},{"logo":"images\/addidas.png","description":"some addidas text"}],"Asics":[{"logo":"images\/Asics.png","description":"some Asics text"},{"logo":"images\/Asics.png","description":"some Asics text"},{"logo":"images\/Asics.png","description":"some Asics text"}],"Qicksilver":[{"logo":"images\/Qicksilver.png","description":"some Qicksilver text"},{"logo":"images\/Qicksilver.png","description":"some Qicksilver text"},  {"logo":"images\/Qicksilver.png","description":"some Qicksilver text"}]}

    function readyLinks() {
        for (var n in brand) {
            for (var i in brand[n]) {
                var link = document.createElement("a");
                link.href = brand[n][i].logo;
                link.innerHTML = n;
                link.setAttribute("data-description", brand[n][i].description);
                link.onclick = function() {
                    document.getElementById("brand-content").innerHTML = "<img src=\"" + this.href + "\"/>" + this.getAttribute("data-description");
                    document.getElementById("brand-content").style.display = "block";
                    return false;
                }
            }
            document.getElementById("brand-nav").appendChild(link);
        }
    }


    window.onload = function() {
        readyLinks();
    }

</script>

<!-- body -->

<div id="brand-nav"></div>

<div id="brand-content"></div>

我将使用的实际数组如下:

代码语言:javascript
复制
  "Nike" => array( 
        array('id'=>'01','logo'=>'images/nike-logo.jpg', 'productTitle' => "Nike Air   Max",'productImage' => "images/airmax.jpg",'productDescription' => "Nike Air Max are awesome ",'rrp' => "RRP £100.00",'salePrice' => "Now ONLY £80.00"), 

  array('id'=>'02','logo'=>'images/nike-logo.jpg', 'productTitle' => "Nike Plus Running Shoes",'productImage' => "images/plus.jpg",'productDescription' => "Nike plus are even more awesome ",'rrp'  => "RRP £120.00",'salePrice' => "Now ONLY £90.00"),  

那么,是否需要为数组中的附加字段添加额外的getAttributes,以便显示所有内容?

代码语言:javascript
复制
this.getAttribute("id");
this.getAttribute("productTitle");
this.getAttribute("productDescription");

伏特罗尼

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-14 11:18:00

代码语言:javascript
复制
function readyLinks()
 {
 for (var n in brand){
 for (var i in brand[n]){
 var link = document.createElement("a");
 link.href = brand[n][i].logo;
 link.innerHTML = n;
 link.setAttribute("data-description",brand[n][i].description);

 link.onclick = function(){
 document.getElementById("brand-content").innerHTML = "<img src=\""+this.href+"\"/>" +  this.getAttribute("data-description");
 document.getElementById("brand-content").style.display = "block";
 return false;}
 document.getElementById("brand-nav").appendChild(link);
 }}}
票数 1
EN

Stack Overflow用户

发布于 2014-02-14 11:06:35

代码语言:javascript
复制
function readyLinks()
  {
  var company, link;
  for (company in brand)
    {
    link = document.createElement("a");
    link.innerHTML = company;
    link.LogoDescription_Arr=brand[company];
    link.onclick = function()
      {
      var container=document.getElementById("brand-content"); 
      var LogoDescription_Arr=this.LogoDescription_Arr, i, l =LogoDescription_Arr.length, item;
      var outPutHTML="";          
      for (i=0;i<l;i++)
        {
        item=LogoDescription_Arr[i];
        outPutHTML+= "<img src=\""+item.logo+"\"/>" +  item.description;
        }
      container.innerHTML=outPutHTML;          
      container.style.display = "block";
      return false;
      }
    document.getElementById("brand-nav").appendChild(link);
    }
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21777050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档