【问题标题】:Sort list items from random child从随机子项中排序列表项
【发布时间】:2016-01-17 21:03:25
【问题描述】:

更新: 由于很多人提到这个问题不够清楚,我将尝试更好地解释它^_^感谢您的帮助和耐心!

我有一个大约 15 项的列表(会增加或减少)。每个项目都包含一个带有其网站 URL 的徽标。这些项目是手动按字母顺序排列的。

  <ul class="myClass">
        <li class="item">
          <a href="URL" title="Company A" target="_blank">
            <span class="logo">
              <img src="images/logo1.jpg">
            </span>
          </a>
        </li>
        <li class="item">
          <a href="URL" title="Company B" target="_blank">
            <span class="logo">
              <img src="images/logo2.jpg">
            </span>
          </a>
        </li>
        <li class="item">
          <a href="URL" title="Company C" target="_blank">
            <span class="logo">
              <img src="images/logo3.jpg">
            </span>
          </a>
        </li>
        <li class="item">
          <a href="URL"  title="Company D" target="_blank">
            <span class="logo">
              <img src="images/logo4.jpg">
            </span>
          </a>
        </li>
        <li class="item">
          <a href="URL" title="Company E" target="_blank">
            <span class="logo">
              <img src="images/logo5.jpg">
            </span>
          </a>
        </li>
    ...
    </ul>

每次加载页面时(也是第一次),我想随机选择一个孩子,然后显示从所选孩子开始重新排序的列表,然后是其余的,而不会丢失字母顺序。

例如,如果 ramdon 选择了我列表的第三个孩子,那么它应该显示如下列表:

<ul class="myClass">
    <li class="item">
      <a href="URL" title="Company C" target="_blank">
        <span class="logo">
          <img src="images/logo3.jpg">
        </span>
      </a>
    </li>
    <li class="item">
      <a href="URL" title="Company D" target="_blank">
        <span class="logo">
          <img src="images/logo4.jpg">
        </span>
      </a>
    </li>
    <li class="item">
      <a href="URL" title="Company E" target="_blank">
        <span class="logo">
          <img src="images/logo5.jpg">
        </span>
      </a>
    </li>

    ...

    <li class="item">
      <a href="URL"  title="Company A" target="_blank">
        <span class="logo">
          <img src="images/logo1.jpg">
        </span>
      </a>
    </li>
    <li class="item">
      <a href="URL" title="Company B" target="_blank">
        <span class="logo">
          <img src="images/logo2.jpg">
        </span>
      </a>
    </li>
</ul>

更新 2: 你好!这是我试图让它工作的代码,但它什么也没做:(随机数可以工作,但我怎样才能重新排序列表项??

    function randomizeChild(){
      var listItems = [];

      $('ul.retailers li').each( function() {
          listItems.push(this);   
      });

      var randomChild = Math.floor(Math.random() * listItems.length);
      var newOrder = listItems.splice(listItems.indexOf(randomChild)).concat(listItems);

      console.log("Random Child --->" + randomChild);

  }

  randomizeChild();

我希望这次我的问题更清楚。提前非常感谢! :)

【问题讨论】:

标签: javascript html list sorting


【解决方案1】:

尝试给你的 ul 一个 id

<ul id='sorted_list'>

然后在javascript中你可以这样做:

elementlist = ['A', 'B']
randomelement = Math.floor(Math.random() * elementlist.length)

list = document.getElementById('sorted_list')
listelement = document.createElement('LI')
listelement.textContent(elementlist[randomelement])
list.appentChild(listelement)

将此与 zvonas 答案结合起来,您应该管理它。

【讨论】:

    【解决方案2】:

    帮助您入门:

    var elems = ['A','B','C','D','E','F'];
    var selectedLetter = 'D';
    var newOrder = elems.splice(elems.indexOf(selectedLetter)).concat(elems);
    

    【讨论】:

    • 感谢@zvona 和@oliver!有没有办法不使用'
    • '的内容? A、B、C、D.... 仅用于示例。每个列表元素都更复杂(每个列表中的 div 和链接)将它们放入数组中......提前致谢!
  • 很高兴听到这让您开始。我只是对这个答案的反对票感到惊讶。我不明白你的内容到底是什么,你能更新一下问题吗?
  • 嗨@zvona 我已经更新了这个问题。我希望你能帮我解决这个问题......谢谢!
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签