Javascript 如何选择<;李>;并把它放在榜首

Javascript 如何选择<;李>;并把它放在榜首,javascript,jquery,html,html-lists,Javascript,Jquery,Html,Html Lists,我使用无序列表创建了一个多语言页面 我想当访问者选择他的语言时,它会成为列表中的第一个li <div id="lang"> <ul id="ul"> <li class="top" id="ar"> <a href="index.php?lang=ar"><img src="images/languages/eg.png"/>Arabic</a> </li

我使用无序列表创建了一个多语言页面

我想当访问者选择他的语言时,它会成为列表中的第一个
li

<div id="lang">
    <ul id="ul">
        <li class="top" id="ar">
            <a href="index.php?lang=ar"><img src="images/languages/eg.png"/>Arabic</a>
        </li>
        <li id="en">
            <a href="index.php?lang=en"><img src="images/languages/us.png"/>English</a>
        </li>
        <li id="fr">
            <a href="index.php?lang=fr"><img src="images/languages/fr.png"/>French</a>
        </li>
        <li id="de">
            <a href="index.php?lang=ge"><img src="images/languages/de.png"/>Germany</a>
        </li>
        <li id="tu">
            <a href="index.php?lang=tu"><img src="images/languages/tr.png"/>Turkey</a>
        </li>
        <li id="cn">
            <a href="index.php?lang=tu"><img src="images/languages/cn.png"/>China</a>
        </li>
    </ul>
</div>

试试这个

 $('#ul li a').click(function(e){
      e.preventDefault();
      var lielement=$(this).parent('li')
      lielement.remove();
      $('#ul').prepend(lielement);

 }
请参阅工作演示:

我建议您阅读相关文档:

  • 还有这个性能方面。在这个特定的例子中可能没有那么重要,但是在早期阶段开始研究它并没有什么坏处。此外,很多时候,性能最好的代码是简单的代码。simple也多次被翻译为“可读”

    我花了一些时间对这里提供的示例进行了一些性能测试:

      • 见此:

        $('div#lang').on('click', 'li:not(:first) a', function(e){
          e.preventDefault();
          var li =  $(this).parent();
          li.siblings().removeClass("top").end().prependTo(li.parent()).addClass('top');
          return false;
        });
        

        就这么简单:

        $('li').on('click', function() {
            $(this).parent().prepend(this);
        });
        

        请参阅此处的工作示例

        更好地阅读jQuery文档,找到完全符合您需要的方法(它存在,我保证),然后应用它。酷,我不知道您可以省略。remove()@JaniHyytiainen。。。是的,我们可以……:)
        $('li').on('click', function() {
            $(this).parent().prepend(this);
        });