javascript - 排序 HTML ul

标签 javascript jquery html css sorting

所以我的问题是可以在强标签中按数字对列表项进行排序,当我尝试使用下面的 JavaScript 代码对数字进行排序但将它们从 div 标签中取出时。 (我使用这些 js 代码按名称排序,当 b = ...(LI) 时它工作正常) HTML:

<section>
<button class="sortbynum" onclick="sortListNum()">Sort By Num</button>
<ul id="sort">
    <li> 
       <div><h2>Name</h2></div>  
       <a href=""><img src=""/></a> 
       <div><span>Something:...</span></div>
       <div><span>something:...</span></div>
       <div><span>HHJS: <strong class="sortNum">456</strong></span></div>
    </li>
    <li>again</li>
</ul>

JavaScript:

function sortListNum() {var list, i, switching, b, shouldSwitch, dir,switchcount = 0;list = document.getElementById("sort");switching = true;dir = "asc"; while (switching) {switching = false;b = list.getElementsByClassName("sortNum");
for (i = 0; i < (b.length - 1); i++) {
  shouldSwitch = false;
  if (dir == "asc") {
    if (b[i].innerHTML.toLowerCase() > b[i + 1].innerHTML.toLowerCase()) {
      shouldSwitch= true;
      break;
    }
  } else if (dir == "desc") {
    if (b[i].innerHTML.toLowerCase() < b[i + 1].innerHTML.toLowerCase()) {
      shouldSwitch= true;
      break;
    }
  }
}
if (shouldSwitch) {
  b[i].parentNode.insertBefore(b[i + 1], b[i]);
  switching = true;
  switchcount ++;
} else {
  if (switchcount == 0 && dir == "asc") {
    dir = "desc";
    switching = true;
  }
}}}

最佳答案

我已经设法从中推断出您在询问是否可以从内联元素中提取文本。

您可以像选择其他任何东西一样选择它们,但更有趣的是。

innerHTML 返回 HTML,它可以是 HTML 或纯文本或两者兼而有之。

innerText 返回纯文本。

textContent 返回连接成一个字符串的所有包含的纯文本,仅当下一个元素在新行上时才用换行符分隔。

由于元素中的文本不仅仅是数字,只需选择 strong 标记并调用 innerText:

document.querySelector('#sort .sortNum').innerText

关于javascript - 排序 HTML ul,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931738/

相关文章:

jquery - 更改动画 Sprite 表时 HTML5 Canvas 挂起(逐帧视频播放)

javascript - 从 jQuery 中的对象数组中提取单个属性的每个值

javascript - 所选 <datalist> 项的值

javascript - 迭代 JSON 时 NG-repeat 不起作用

javascript - 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用

javascript - jQuery 将 CSS 类添加到动态创建的元素

jquery - 如何在每个 window.document.writeln 之后添加换行符

javascript 全局变量 - 保护

html - 如何在不使用 jquery 的情况下在另一个 html 页面 div 中显示 html 页面

javascript - 无法读取父元素的 NodeName