RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 713825
Accepted
Daniyal Lukmanov
Daniyal Lukmanov
Asked:2020-09-03 17:32:56 +0000 UTC2020-09-03 17:32:56 +0000 UTC 2020-09-03 17:32:56 +0000 UTC

如何在 JavaScript 中的 <ol> 列表中设置所需的顺序

  • 772

里面有一个列表需要按照对应值的降序排列input。最大值所在的行input应位于列表的最顶部,最小值位于列表的最底部(应按降序排列)。所有这一切都应该在单击按钮时发生。我还没有把它绑定到按钮上,本质在功能上。

var list = document.querySelectorAll("li");
var inputs = document.querySelectorAll("input");
function rev() {
  var max = 0;
  var stab = 0;
  for(var i = 0; i < 4; i++){
    if(max < parseInt(inputs[i].value)) {
      list[stab].before(list[i]);
      max = parseInt(inputs[i].value);
      stab = i;
    }  
  }
  console.log(max);
  console.log(stab);
}
rev();
<h1>Just Test</h1>
<ol>
	<li id="t1">One <input type="number" value="1"></li>
	<li id="t2">Two <input type="number" value="2"></li>
	<li id="t3">Three <input type="number" value="3"></li>
	<li id="t4">For <input type="number" value="4"></li>
</ol>
<button>Sort</button>

在此执行中,一切正常,但如果您将第input3 行中的值更改为 5,例如,则代码已经无法正常运行。

javascript
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    webDev_
    2020-09-03T17:49:26Z2020-09-03T17:49:26Z

    sort.addEventListener("click",()=>{
      let a = [], b;
      [].forEach.call(document.querySelectorAll("ol > li"), (c)=>a.push([c.children[0].value,c]));
      b = a.sort((a,b)=>b[0]-a[0]);
      b.forEach((c)=>c[1].parentNode.appendChild(c[1]));
    });
    <h1>Just Test</h1>
    <ol>
    	<li id="t1">One <input type="number" value="1"></li>
    	<li id="t2">Two <input type="number" value="2"></li>
    	<li id="t3">Three <input type="number" value="3"></li>
    	<li id="t4">For <input type="number" value="4"></li>
    </ol>
    <button id="sort">Sort</button>

    • 1
  2. diralik
    2020-09-03T18:10:25Z2020-09-03T18:10:25Z

    let ol = document.querySelector('ol');
    let lis = [...document.querySelectorAll('li')];
    
    function sort() {
      // удаляем все элементы <li> из <ol>
      for (let li of lis) {
        li.remove();
      }
    
      lis
        // преобразуем массив элементов <li> в массив пар [элемент <li>, соответствующий ему <input>]
        .map(li => [li, li.querySelector('input')])
        // сортируем массив пар
        .sort((a, b) => b[1].value - a[1].value)
        // добавляем все элементы <li> в <ol>
        .forEach(pair => ol.appendChild(pair[0]));
    }
    
    sort();
    
    // вешаем обработчик на кнопку
    document.querySelector('button').addEventListener('click', sort);
    <h1>Just Test</h1>
    <ol>
      <li id="t1">One <input type="number" value="1"></li>
      <li id="t2">Two <input type="number" value="2"></li>
      <li id="t3">Three <input type="number" value="3"></li>
      <li id="t4">For <input type="number" value="4"></li>
    </ol>
    <button>Sort</button>

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5