需要一个建议,以避免多种功能

cap*_*ock 0 html jquery show-hide

我正在尝试使用jQuery编写一个函数,它允许我显示或隐藏DIV.这里有一个代码示例,我只需要帮助重新编写函数以避免重复:

<ul id="link">
  <li>
    <a id="myLink1" href="javascript:;">Lister</a>
  </li>
  <li>
    <a id="myLink2" href="javascript:;">Afficher</a>
  </li>
</ul>

<div id="contenu">
<div id="myDiv1">             
  <p> Bienvenue </p> 
</div>
<div id="myDiv2">             
   <p> bob </p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT

$(document).ready(function(){
       var par = $("#myDiv1");
       $(par).hide();
      $("#myLink1").click(function(e){
        $(par).toggle();
        e.preventDefault();
      });

    });

    $(document).ready(function(){
       var par = $("#myDiv2");
       $(par).hide();
      $("#myLink2").click(function(e){
        $(par).toggle();
        e.preventDefault();
      });

    });
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

谢谢

Fel*_*lix 5

1)您只需要一个DOM就绪处理程序 $(document).ready(function(){...});

2)您可以使用带有选择器的属性启动 [name ^ ="value"]来选择具有指定属性的元素,其值始于给定字符串.

3)使用.each()循环遍历id name开头的所有链接myLink

4)使用匹配()和正确的正则表达式来获取链接的ID号,然后分别用该ID号切换div.

$(document).ready(function () {
    $('[id^="myDiv"]').hide();
    $('[id^="myLink"]').each(function () {
        $(this).click(function (e) {
            e.preventDefault();
            var id = $(this).attr('id').match(/\d+$/);
            $('#myDiv' + id).toggle();
        });
    });
})
Run Code Online (Sandbox Code Playgroud)

更新小提琴


Rom*_*aun 5

改为:

$(document).ready(function () {
    $('a').click(function (e) {
        e.preventDefault();
        $($(this).attr('href')).toggle();
    });
});
Run Code Online (Sandbox Code Playgroud)

记住要添加iddivhref链接.

工作jsFiddle:http://jsfiddle.net/jbv4Y/1/