Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按子内容对HTML元素排序_Html_Sorting_Text_Children - Fatal编程技术网

按子内容对HTML元素排序

按子内容对HTML元素排序,html,sorting,text,children,Html,Sorting,Text,Children,我在列表中列出了这些元素。我想按字母顺序对列表进行排序,但是如果要排序的文本位于子元素中,我该如何进行排序 <div class="entry"> <button class="title btn btn-primary">Tale of Memories</button> </div> 如果没有看到您的代码,就很难确切地知道事情将如何工作。以下是一个通用解决方案: 选择列表中的所有元素,例如:使用querySelectorAll。 将步骤1的结

我在列表中列出了这些元素。我想按字母顺序对列表进行排序,但是如果要排序的文本位于子元素中,我该如何进行排序

<div class="entry">
<button class="title btn btn-primary">Tale of Memories</button>
</div>

如果没有看到您的代码,就很难确切地知道事情将如何工作。以下是一个通用解决方案:

选择列表中的所有元素,例如:使用querySelectorAll。 将步骤1的结果转换为数组,例如:with 使用本机方法对数组进行排序,提供您自己的函数以根据需要比较值。 用数组的内容重写列表的内容。 这是一个演示。在其中,我们不是直接根据每个项目中的文本对列表进行排序,而是根据每个项目中跨度的文本对列表进行排序,因此FA项目排在第一位,而不是最后一位。在您的情况下,您需要更改compare函数,以获取您希望通过哪个元素来比较项目:

//步骤1:选择列表项 var items=document.querySelectorAllmylist li; //步骤2:将节点列表转换为数组 var itemsarray=Array.prototype.slice.callitems,0 //步骤3:使用自己的比较函数对数组进行排序 项目数组。排序函数a,b{ 返回a.querySelectorspan.innerHTML>b.querySelectorspan.innerHTML; }; //步骤4:清空列表,并插入已排序的项目 var ml=document.getElementByIdmylist; ml.innerHTML=; 对于var x=0;x请发布一些相关的代码。你可以把这个名字作为数据属性放在div中,然后按照我所需要的做。