javascript - 在列表项中输出 javascript 数组,然后单击其中任何一个将在另一个 dic 中显示整个项目

标签 javascript jquery ajax

所以我必须完成一项任务,而且我是一个 javascript/jquery 新手! 我的问题是这样的:

我们需要有几个从 javascript 输出的列表项。该列表仅包含图 block 。 然后,当用户单击这些列表项中的任何一个时,完整信息将显示在页面上的其他位置,并包含更多详细信息。

我必须处理这个:

var data={
    "news":[
        {
            "id":"0",
            "title":"Find the best deals",
            "sub":"Featured Story",
            "text":"0 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.",
            "image":"images\/home_img_4.jpg",
            "link":"#NEWS_0",
        },
        {
            "id":"1",
            "title":"No one likes the grudge",
            "sub":"Featured Story 1",
            "text":"1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.",
            "image":"images\/home_img_4.jpg",
            "link":"#NEWS_1",
        },
        {
            "id":"2",
            "title":"Story time is on!",
            "sub":"Featured Story2",
            "text":"2 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.<br/><br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi porttitor mattis elementum. Duis scelerisque sit amet sem ac lacinia. Aenean ut nisl viverra, scelerisque lectus eget, ullamcorper leo. Ut quis mi mi. Donec vestibulum tellus sed ipsum sodales pharetra. <br/><br/>Praesent sit amet dui luctus, mollis lacus nec, tincidunt magna. Nulla laoreet mauris at nisl dictum, ut ullamcorper magna rhoncus. Suspendisse potenti. Suspendisse quis tincidunt odio, non tristique turpis. Suspendisse consequat sapien vitae ultrices scelerisque. Pellentesque luctus magna laoreet orci consequat fermentum.",
            "image":"images\/home_img_4.jpg",
            "link":"#NEWS_2",
        },

    ]
}

还有一个更好的例子来说明我正在寻找什么: jsfindle

谢谢! 乔治

最佳答案

填充 UL 列表时,向 LI 添加属性“data-item”, 为其提供数据数组中该项目的索引值。

<ul class="mini-feed">
    <li class="title" data-item="0">Test title</li>
    <li class="title" data-item="1">Test title 1</li>
    <li class="title" data-item="2">Test title 2</li>
    <li class="title" data-item="3">Test title 3</li>
    <li class="title" data-item="4">Test title 4</li>
</ul>

还给出显示部分中的元素 ID:

<div class="">
    <img id="image" src="" class="image" />
    <h1 id="title" class="title">Test title</h1>
    <span id="body" class="sub">some tagline</span>
</div>

然后添加以下 JavaScript(考虑到您正在使用 jQuery)

$(document).ready(function(){
 $('.title').click(function(){
  var itemIndex = $(this).data('item');
  popItemToScreen(data.news[itemIndex]);
 });
});

function popItemToScreen(dataItem){
 $('#image').src = dataItem.image;
 $('#title').html(dataItem.title);
 $('#body').html(dataItem.text);
}

这应该可以解决问题

关于javascript - 在列表项中输出 javascript 数组,然后单击其中任何一个将在另一个 dic 中显示整个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19022302/

相关文章:

javascript - 在文本字段中输入时,自动格式化为 hh :mm from right to left

javascript - 附加 span 元素和 fadeOut jQuery

javascript - ins1.addEventListener 不是函数

php - 在 Ajax : any configuration difference between Nginx and Apache

javascript - 如何使用 Angular Material 的 $mddialog 服务中的 typescript 在 IDialogOptions 中设置解析签名

javascript - jquery 获取数据标签并用它做一些事情

Javascript:按名称访问对象的成员

php - 我无法停止当前通过ajax调用在提供的网页上播放音频

php - 错误 : jQuery1830649454693285679_1359620502896 was not called JSON

javascript - 使用 confirm() 作为 if 的条件?