javascript - 如何在点击时显示div?

标签 javascript jquery html ruby-on-rails

这应该相当简单,但我对 Javascript 不太熟悉,所以我遇到了困难。我有这个html:

<section class="main-container">
    <ul class="landing-list">
        <li class="main-headings">
            <strong>SERVICES</strong><i class="icon icon-angle-down"></i>
            <div class="main-blurb" id="blurb-1">
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Necessitatibus assumenda, in a quaerat iusto. Reiciendis consequuntur doloribus, sed tenetur aspernatur sunt perspiciatis. Odit non eos laudantium fuga officiis quia eius!</p>
            </div>
        </li>
        <li class="main-headings">
            <strong>WHY CHOOSE PMDS?</strong><i class="icon icon-angle-down"></i>
            <div class="main-blurb" id="blurb-2">
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Explicabo rerum totam obcaecati at eligendi voluptate tempore aspernatur. Maxime accusantium nobis ab, at voluptatem porro, fugit sed sint fugiat sapiente vel?</p>
            </div>
        </li>
        <li class="main-headings">
            <strong>PORTFOLIO</strong><i class="icon icon-angle-down"></i>
            <div class="main-blurb" id="blurb-3">
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio similique aut voluptates, facilis, provident quae cupiditate dolore nisi non accusamus quidem dolorem dicta aliquam, quod temporibus. Quas deleniti, aliquam ab.</p>
            </div>
        </li>
        <li class="main-headings">
            <strong>CONTACT</strong><i class="icon icon-angle-down"></i>
            <div class="main-blurb" id="blurb-4">
                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A, recusandae. Commodi, mollitia autem necessitatibus dicta. Explicabo quam harum, perferendis repellat vel aut, est fugit assumenda blanditiis ratione, doloribus molestiae consequuntur.</p>
            </div>
        </li>
    </ul>
</section>

我正在寻找的效果是,当单击其中一个 .icons 时,会显示其下方的 .main-blurb,而所有其他 .main-blurb 都会隐藏。这是我写的js:

$('section ul li .icon').click(function() {
    var i = $(this).index();
    $('.main-blurb').hide();
    $('#blurb-' + (i+1)).show();
});

我已将其放入 .js 文件中,并在我的 application.js 中需要它。当我运行这个时,什么也没有发生。我已经重新启动了服务器以及所有这些,我只是想知道是否缺少一些语法。

最佳答案

var i = $(this).index();始终等于 1,因为 .icon是每个 <li> 中的第二个元素.

尝试:

$('section ul li .icon').click(function() {
    $('.main-blurb').hide();
    $(this).parent().find('.main-blurb').show();
});

关于javascript - 如何在点击时显示div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41818769/

相关文章:

php - Ajax + PHP 登录脚本不起作用

javascript - 我应该在 angular2 中使用 <page type ="list"> 或 <listpage> 吗?

javascript - 用于 knockout 的动态可观察类

javascript - 如何在 HTML 中的 li 元素上创建右键单击自定义菜单

php - AJAX 请求返回某种形式的长字符串

javascript - 如何使用 jquery 添加具有不同值的不同元素

php - 将 cookie 和 css 与 php 混合

javascript - 如何使用数组选择对象数组中的特定键?

javascript - 当用户将鼠标悬停在 html 文档中的静态图像上时如何显示谷歌地图

html - CSS 强制将子级嵌套在父级后面,位置为 :fixed