gpt4 book ai didi

javascript - 链接同名类,这样当一个被点击时,另一个被赋予一个类

转载 作者:行者123 更新时间:2023-11-28 19:12:00 24 4
gpt4 key购买 nike

基本上,我是在寻求一种优化此代码的方法。我想将其缩减为几行,因为它对每次点击绑定(bind)都执行相同的操作。

    $("#arch-of-triumph-button").click(function(){
$("#arch-of-triumph-info").addClass("active-info")
});
$("#romanian-athenaeum-button").click(function(){
$("#romanian-athenaeum-info").addClass("active-info")
});
$("#palace-of-parliament-button").click(function(){
$("#palace-of-parliament-info").addClass("active-info")
});

有没有办法将“arch-of-triumph”、“romanian-athenaeum”、“palace-of-parliament”存储到一个数组中,然后将它们拉出到一个点击绑定(bind)中?我在想可能是一些串联?

$("+landmarkName+-button").click(function(){
$("+landmarkName+-info").addClass("active-info")
});

这样的事情有可能吗?预先感谢您的所有回答。

编辑:这是完整的 HTML。

        <div class="landmark-wrapper">
<div class="page-content landmark">
<div class="heading span-after">
<span>Arch of Triumph</span>
</div>
<div class="landmark-button" id="arch-of-triumph-button"></div>
</div>
</div>
<div class="landmark-wrapper">
<div class="page-content landmark">
<div class="heading span-after">
<span>Romanian Athenaeum</span>
</div>
<div class="landmark-button" id="romanian-athenaeum-button"></div>
</div>
</div>


----------------------------------------------------------

<div class="landmarks-info-wrapper">
<div class="landmark-info" id="arch-of-triumph-info">
<div class="info-landmark section">
<span class="landmark-title">Arch of Triumph</span>
<span class="landmark-coord">44°28′1.99″N 26°4′41.06″E</span>
</div>
</div>
<div class="landmark-info" id="romanian-athenaeum-info">
<div class="info-landmark section">
<span class="landmark-title">The Romanian Athenaeum</span>
<span class="landmark-coord">44.4413°N 26.0973°E</span>

</div>
</div>

最佳答案

假设您无法修改您的 HTML 标记(在这种情况下使用 CSS 类会更清晰),您的问题的解决方案如下所示:

// Assign same click handler to all buttons
$("#arch-of-triumph-button, #romanian-athenaeum-button, #palace-of-parliament-button")
.click(function() {

// Extract id of clicked button
const id = $(this).attr("id");

// Obtain corresponding info selector from clicked button id by replacing
// last occurrence of "button" pattern with info.
const infoSelector = "#" + id.replace(/button$/gi, "info");

// Add active-info class to selected info element
$(infoSelector).addClass("active-info");
});

关于javascript - 链接同名类,这样当一个被点击时,另一个被赋予一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59096846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com