自动增加HTML类/ ID以区分div

Nic*_*k_M 0 html javascript css jquery

我目前正在开发一个应用程序,用户在其中获取一组列表,其中包含详细信息,每个div中还有隐藏的详细信息,可由用户切换.问题是,当您单击一个框的"详细信息"时,它会切换所有框上的类,而不是仅在单击的框中切换.我一直在寻找这个问题的答案,并试图自动增加ID/Class,以便创建的每个框都有一个唯一的标识符.我需要这样做才能使"额外细节"仅在卡片"细节"被点击时打开.预先感谢您的任何帮助.

我的守则

$(".card-details").on("click", function (e) {
            e.preventDefault();
            $(".extra-details").toggleClass("hidden");
        });
Run Code Online (Sandbox Code Playgroud)
h4 {
 padding:10px 0 0 5px;
 font-size:18px;
 font-weight:bold;
}
.card {
    border:none;
    box-shadow:2px 2px 5px rgba(201,201,201, .5);
    padding:5px;
    margin:5px;
    max-width:350px;
    background:transparent;
    border:1px solid #efefef;
    font-size:12px;
}
hr {
    border:1px solid #efefef;
    width:100%;
    margin-top:0;
}
.card-head {
    color:#005ABB;
}
.card-container{
    margin-top:20px;
    margin-left:5px;
}
.card-info {
    margin-left:20px;
    background:transparent !important;
}
.card-details {
    color:#005ABB;
    margin-left:85%;
}
.card-details:hover {
    text-decoration:underline;
    color:#F9A51B;
    cursor:pointer;
}
.hidden{
    display:none !important;
}
Run Code Online (Sandbox Code Playgroud)
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container-fluid">
                <div class="container">
                    <div class="row card-container">
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 card">
                            <h4 class="card-head">20 Foot Titan Chassis</h4>
                            <hr>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Equipment Type
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Available Quantity
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Selected Quantity
                                </div>
                            </div>
                            <div class="col-xs-12 card-details">
                                Details
                            </div>
                            <div class="row extra-details hidden">
                                <div class="col-xs-12 card-info">
                                    Address: Test Address
                                </div>
                                <div class="col-xs-12 card-info">
                                    Hours of Operation: Weekdays 9AM - 5PM
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 card">
                            <h4 class="card-head">20 Foot Titan Chassis</h4>
                            <hr>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Equipment Type
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Available Quantity
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Selected Quantity
                                </div>
                            </div>
                            <div class="col-xs-12 card-details">
                                Details
                            </div>
                            <div class="row extra-details hidden">
                                <div class="col-xs-12 card-info">
                                    Address: Test Address
                                </div>
                                <div class="col-xs-12 card-info">
                                    Hours of Operation: Weekdays 9AM - 5PM
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 card">
                            <h4 class="card-head">20 Foot Titan Chassis</h4>
                            <hr>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Equipment Type
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Available Quantity
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Selected Quantity
                                </div>
                            </div>
                            <div class="col-xs-12 card-details">
                                Details
                            </div>
                            <div class="row extra-details hidden">
                                <div class="col-xs-12 card-info">
                                    Address: Test Address
                                </div>
                                <div class="col-xs-12 card-info">
                                    Hours of Operation: Weekdays 9AM - 5PM
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 card">
                            <h4 class="card-head">20 Foot Titan Chassis</h4>
                            <hr>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Equipment Type
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Available Quantity
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Selected Quantity
                                </div>
                            </div>
                            <div class="col-xs-12 card-details">
                                Details
                            </div>
                            <div class="row extra-details hidden">
                                <div class="col-xs-12 card-info">
                                    Address: Test Address
                                </div>
                                <div class="col-xs-12 card-info">
                                    Hours of Operation: Weekdays 9AM - 5PM
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 card">
                            <h4 class="card-head">20 Foot Titan Chassis</h4>
                            <hr>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Equipment Type
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Available Quantity
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Selected Quantity
                                </div>
                            </div>
                            <div class="col-xs-12 card-details">
                                Details
                            </div>
                            <div class="row extra-details hidden">
                                <div class="col-xs-12 card-info">
                                    Address: Test Address
                                </div>
                                <div class="col-xs-12 card-info">
                                    Hours of Operation: Weekdays 9AM - 5PM
                                </div>
                            </div>
                        </div>
                        <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 card">
                            <h4 class="card-head">20 Foot Titan Chassis</h4>
                            <hr>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Equipment Type
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Available Quantity
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-xs-12 pull-left card-info">
                                    Selected Quantity
                                </div>
                            </div>
                            <div class="col-xs-12 card-details">
                                Details
                            </div>
                            <div class="row extra-details hidden">
                                <div class="col-xs-12 card-info">
                                    Address: Test Address
                                </div>
                                <div class="col-xs-12 card-info">
                                    Hours of Operation: Weekdays 9AM - 5PM
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
Run Code Online (Sandbox Code Playgroud)

小智 5

$(this).siblings('.extra-details').toggleClass('hidden') 将实现你想要的.

另请注意,您的"详细信息"元素实际上并不是一个链接,只是一个样式,因此您不需要该e.preventDefault()行.