首页 > 解决方案 > 针对具有相同类 jquery 的特定元素

问题描述

这是高级别的代码,我有多个这样的列表,结构如下:

<li class="wrap-input">
    <p>Some sentence</p>
    <select class="form-control">
      ...
    </select>
    <div class="button-in-input">
      ...
    </div>                                        
</li>
.
.
.

我想要做的是,每当用户关注“表单控件”选择时,应该显示具有“输入按钮”类的 div,但仅在那个特定的 li 元素中。我用这个 jquery 代码试了一下:

$(".form-control").focusin(function() {
        $(".button-in-input").show();
    }).focusout(function() {
        $(".button-in-input").hide();
    });

但是,当然,这可以推广到我拥有的所有 li 元素。我假设有一种方法可以使用this关键字,但请注意 select 和 div 元素是兄弟元素。
任何帮助,将不胜感激!

PS:我想避免使用 ID,否则会有大量重复代码

标签: javascripthtmljquerycsstwitter-bootstrap

解决方案


你可以用纯 CSS 做到这一点。

.wrap-input .button-in-input {
    display: none;
}
.wrap-input select.form-control:focus + .button-in-input {
    disply: block;
}

第二个选择器中的选择不是必需的,但它有助于防止具有相同类的不同项目。


推荐阅读