按字母顺序对
  • 元素进行排序
  • 2024-03-27

    如何在保留外部 html 的同时按字母顺序对无序列表进行排序?我当前的设置按字母顺序对列表进行排序,但是它只重新排列列表元素的内部 html,而不是整个元素,这是一个问题,因为在标签内我有特定于每个元素的基于事件的脚本调用。列表元素本身由 xml 文档中的脚本添加。 这是 HTML:

    var xhttp;
    xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        onLoad(this);
      }
    };
    xhttp.open("GET", "stocks.xml", true);
    xhttp.send();
    
    
    function onLoad(xml) {
      var x, i, txt, xmlDoc;
      xmlDoc = xml.responseXML;
      txt = "<ul id = stocksymbols>";
      var StockList;
      x = xmlDoc.getElementsByTagName("Stock");
    
      for (i = 0; i < x.length; i++) {
        symbol = x[i].getAttribute('symbol');
        txt += "<li onmouseover=\"mouseOver('" + symbol + "')\" onmouseout=\"mouseOut()\">" + symbol + "</li>";
      }
      document.getElementById("stockList").innerHTML = txt + "</ul>";
      sortList("stocksymbols");
    }
    
    function sortList(ul) {
      if (typeof ul == "string")
        ul = document.getElementById(ul);
    
      var lis = ul.getElementsByTagName("LI");
      var vals = [];
      for (var i = 0, l = lis.length; i < l; i++)
        vals.push(lis[i].innerHTML);
      vals.sort();
      for (var i = 0, l = lis.length; i < l; i++)
        lis[i].innerHTML = vals[i];
    }
    
    function mouseOver(target) {
      stockInfoDiv = document.getElementById("stockInfo");
      stockInfoDiv.innerHTML = target;
    }
    
    function mouseOut() {
      stockInfoDiv.innerHTML = "";
    }
    h2 {
      color: Navy;
    }
    
    li {
      font-family: monospace;
      font-weight: bold;
      color: Navy;
    }
    
    li:hover {
      font-family: monospace;
      font-weight: bold;
      color: red;
    }
    <html>
    
    <head>
      <title></title>
    
    </head>
    
    <body>
      <h2>List of Stocks:</h2>
    
      <div id="stockList">
      </div>
    
      <br />
      <br />
      <br />
    
      <div id="stockInfo">
      </div>
    </body>
    
    </html>

    代替lis[i].innerHTML = vals[i];,排序lis列出并执行ul.appendChild(lis[i])。这将删除当前的li从其在 DOM 中的位置并将其附加到ul。我假设唯一li元素是直接子元素ul.

    function sortList(ul) {
      var ul = document.getElementById(ul);
    
      Array.from(ul.getElementsByTagName("LI"))
        .sort((a, b) => a.textContent.localeCompare(b.textContent))
        .forEach(li => ul.appendChild(li));
    }
    
    sortList("stocksymbols");
    <ul id=stocksymbols>
      <li>AAA</li>
      <li>ZZZ</li>
      <li>MMM</li>
      <li>BBB</li>
    </ul>
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

    按字母顺序对
  • 元素进行排序 的相关文章
    • 开始使用 Three.js 中的行进立方体

      我是 Three js 的新手 正在寻找教程来帮助我开始了解如何在 Three js 中使用 Marching Cubes 到目前为止 我在 Three js 中看到的一些使用它的项目对我来说有点复杂 所以一个简单的教程会很好 谢谢 像您一
    • 元素上的框阴影行为

      Update 在我提交错误报告后 https bugs chromium org p chromium issues detail id 763337 https bugs chromium org p chromium issues de
    • android:widgetLayout 和 android:layout 之间的区别?

      我得到一些奇怪的配置 其中 widgetLayout 配置列表项的内部空间 而布局配置整个项目列表和屏幕背景 有人能真正解释一下什么是 widgetLayout 吗 android layout 整个首选项的布局 包括标题 摘要和小部件 a
    • JSLint 错误:意外的“这个”

      无法理解为什么 JSLint 对我的使用感到惊讶this在下面的代码中 function testConstr x use strict this joker Whyyy sooo seriousss this x x 对于这两个属性分配
    • 是否可以向 JavaScript 函数发送可变数量的参数?

      是否可以从数组向 JavaScript 函数发送可变数量的参数 var arr a b c var func function debug alert arguments length for arg in arguments alert
    • 在 Typescript 中从基类创建子类的新实例[重复]

      这个问题在这里已经有答案了 我想创建新实例Child班级来自Base类方法 这有点复杂 但我会尽力解释 这是一个例子 class Base constructor clone Here i want to create new instan
    • 将 DIV 转换为单击并拖动视口

      有人知道一种不显眼的 基于原型或无框架的方法将具有大内容 例如地图 的 DIV 转换为具有固定尺寸的可点击和可拖动的 地图 容器 非常像 Google 地图 我想在大型输入表单中显示 HTML 块 这些块可能会超出可用空间 每个块可以有大约
    • 如何在javascript中删除一组表情符号中的最后一个表情符号?

      假设我的字符串中有 3 个表情符号 字符串中没有任何空格或除表情符号之外的任何其他字符 如何删除javascript中最后一个表情符号 下面的答案不使用任何特殊的包并安全地删除最后一个表情符号 function safeEmojiBacks
    • XMLHttpRequest、jQuery.ajax、jQuery.post、jQuery.get 之间有什么区别

      我如何找出最适合某种情况的方法 有人可以提供一些例子来了解功能和性能方面的差异吗 XMLHttpRequest是原始浏览器对象 jQuery 将其包装成更可用和简化的形式以及跨浏览器一致的功能 jQuery ajax是 jQuery 中的通
    • 哪种 Java DOM 包装器是最好或最受欢迎的? [关闭]

      就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
    • 主干集合排序

      我制作了我的第一个主干应用程序 但在集合排序方面遇到了一些问题 使用这个后 var SortedFriends MyFriends sortBy function friend return friend get uid console l
    • Angular - 将焦点放在动态创建的输入字段上

      我如何将焦点添加到新创建的字段 参见到目前为止的示例 http jsfiddle net aERwc 165 http jsfiddle net aERwc 165 scope addField function console log h
    • JQuery 屏蔽输入插件不起作用

      我已将 JQuery Masked 输入插件添加到我的 Web 项目中 但它根本不起作用 该插件可以在这里找到 http digitalbush com projects masked input plugin http digitalbu
    • HTML 文本框,自动突出显示文本

      我将如何制作一个包含预先存在的文本的文本框 当用户在其中单击时 其中的所有文本都会突出显示 例如 YouTube 在其视频上使用嵌入代码的文本框的方式相同 谢谢 如果我正确理解你的问题 你可以使用一些javascript 未经测试的代码
    • 如何使用 Javascript 从 Chrome iOS 下载 blob 文件?

      如何使用 Javascript 从 Chrome iOS 下载 blob 文件 我正在从 iOS 下载文件 pdf excel txt png iOS 没有文件系统 这对下载来说是一个问题 我创建了一个代码 根据操作系统和导航器 如果需要
    • 为什么 [].push([]) 返回 1? [复制]

      这个问题在这里已经有答案了 为什么这会返回 1 push outputs 1 push 返回数组的新长度 one push two returns 2 array length is 2 one two push something ret
    • C# XML 反序列化。将节点中的所有内部文本读取到字符串属性中

      我目前正在尝试修改我的类 以便我的模型上的文本属性包含某个节点的所有内部文本 text node 给我带来问题的 xml 示例是
    • 将记录转换为序列化表单数据以通过 HTTP 发送

      有没有办法转换此记录 TError record code Word message String end TState record caption String address Cardinal counters TArray
    • jQuery - 动画CSS背景大小?

      我正在尝试对背景图像的大小进行动画处理 但它不起作用 从以下代码中知道为什么吗 this animate opacity 1 background size 70px 48px right 39 top 45 250 注意 所有其他属性都可
    • 使用命令行将 MediaWiki 维基文本格式转换为 HTML

      我倾向于编写大量文档 因此 MediaWiki 格式对我来说很容易理解 而且比编写传统 HTML 节省了我很多时间 然而 我也写了一篇博客 发现一直从键盘切换到鼠标来输入正确的 HTML 标签会增加很多时间 我希望能够使用 Mediawik

    随机推荐