Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
109 views
in Technique[技术] by (71.8m points)

javascript - How to use multiple IDs in one function

How to use it on multiple ids such that when #more1 is clicked , #details1 will appear. And when #more2 is clicked , #details2 will appear? Note that I want it only using one function. Thank U.

$(document).ready(function () {
    $('#more1,#more2').click(function () {
        $('#details1,#details2').slideToggle();
    });
});
question from:https://stackoverflow.com/questions/65921307/how-to-use-multiple-ids-in-one-function

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use a more general selector: $('[id^="more"]'). This will select all items that have an id that starts with "more", and will have a click event tied to them.

Then you can use the number in the id property and use it to build the id of the target.

$('[id^="more"]').click(function()
{
    let id = $(this).attr('id');
    let num = /d+/.exec(id)[0];
    $('#details' + num).slideToggle();                  
});

$(document).ready(function()
{
    $('[id^="more"]').click(function()
    {
        let id = $(this).attr('id');
        let num = /d+/.exec(id)[0];
        $('#details' + num).slideToggle();                  
    });    
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div>
  <button id="more1">One</button>
  <span id="details1">Each Section</span>
</div>
<div>
  <button id="more2">Two</button>
  <span id="details2">Is Independent</span>
</div>
<div>...</div>
<div>
  <button id="more25">Twenty Five</button>
  <span id="details25">Of all the others</span>
</div>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...