按字母顺序对
  • 元素进行排序
  • 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(使用前将#替换为@)

    按字母顺序对
  • 元素进行排序 的相关文章
    • 按下回车键时不刷新页面

      我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
    • 删除 IE9 边缘周围的 2px 灰色边框

      我正在尝试对这个网站进行编码 尝试关键字 并且我正在尝试找出如何删除这个阴影2px灰色边框延伸到 IE9 窗口的内部 至少顶部 左侧和底部 我的边距设置为零 因此所有页面元素都到达页面的最边缘 但使用 IE9 它们会停在这个灰色边框处 我没
    • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

      我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
    • JavaScript 继承;调用和原型

      要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
    • JavaScript 中的 Promise 有什么意义?

      一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
    • JavaScript推送函数中的动态变量

      我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
    • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

      我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
    • 如何始终将焦点保持在文本框中

      我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
    • 如何计算特定字符在字符串中出现的次数

      我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
    • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

      我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
    • 在 Delphi 中使用 XML(将特定数据返回到变量)

      过去几天我一直在尝试使用 Delphi 2010 和 MSXML 我是一个极端的新手 需要一点指导 var MemoryStream TMemoryStream XMLPath String sName String XMLDoc vari
    • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

      Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
    • 覆盖 jQuery 验证 MVC4 中的默认设置

      要覆盖查询验证插件 请在文件 http docs jquery com Plugins Validation validate toptions 推荐的方式是 selector validate invalidHandler functio
    • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

      我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
    • 按钮 - 单击时更改背景颜色

      我的活动中有 8 个按钮 我正在寻找的是 按钮具有默认背景 单击按钮时 背景颜色应更改为其他颜色 这部分非常简单 但是 当我单击任何其他按钮时 第一个按钮的背景颜色应该变回默认颜色 我知道这将使用 选择器状态 来完成 但我不太确定如何实现它
    • 滚动顶部不符合预期

      Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
    • 如何从 json 文件创建模型? (ExtJS)

      这是我想使用 json 文件创建的模型 Ext define Users extend Ext data Model fields name user id type int name user name type string 为了根据服
    • 将数组从 jquery ajax 传递到代码后面

      我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
    • 如何通过索引访问 JSON 对象中的字段

      我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
    • 没有输入的 jQuery 日期选择器

      我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

    随机推荐