Javascript jQuery在包含多个div时排序<;span>;文本

Javascript jQuery在包含多个div时排序<;span>;文本,javascript,jquery,html,Javascript,Jquery,Html,我有多个部分,如果中包含文本,我想在其中对div进行排序。我尝试了不同的stackoverflow线程,但到目前为止对我没有任何帮助,我离目标有点近,但我的代码不起作用。我不确定我做错了什么,这些内部div需要在每个部分内进行排序。但是我不擅长JS。 如果div包含span文本,则将其置于每个部分的第一位 sortUsingNestedText($('toSort'),“div.customCardData”,“span.recenUpdate”); 函数sortUsingNestedText

我有多个部分,如果
中包含
文本,我想在其中对
div进行排序。我尝试了不同的
stackoverflow
线程,但到目前为止对我没有任何帮助,我离目标有点近,但我的代码不起作用。我不确定我做错了什么,这些内部div需要在每个部分内进行排序。但是我不擅长JS。 如果div包含span文本,则将其置于每个部分的第一位

sortUsingNestedText($('toSort'),“div.customCardData”,“span.recenUpdate”);
函数sortUsingNestedText(父、子选择器、键选择器){
var items=parent.childSelector.sort(函数a,b){
var vA=$(keySelector,a).text();
var vB=$(keySelector,b).text();
返回值(vAvB)?1:0;
});
父项。附加(项);
控制台日志(“完成”);
}

第01节标题
第02节标题

首先请注意,您已经创建了多个元素,它们的
id
toSort
相同。这是无效的,因为id在DOM中必须是唯一的。如果要按常见行为对元素进行分组,请改用类


我想在每一节中先带一个跨度

在这种情况下,您不需要排序。只需将相关的
div
附加到组的开头即可:

$('.toSort')。每个(函数(){
var$h2=$(this.find('h2');
$(this).find('.customCardData:has(span.recenUpdate)').insertAfter($h2);
});

第01节标题
第02节标题

您的HTML和JS有几个问题。然而,为了解决这些问题,我们需要知道“排序”的确切含义。假设HTML示例中只有两个div包含
span
元素,那么应该将它们移到顶部还是底部?另外,如果必须在同一个gorup中对包含跨距的div进行div,会发生什么情况?它们应该如何分开?我想在每个部分中首先使用一个跨距。谢谢,但是你能制作它的JSIDLE吗?Lolz当我复制js并将其放入我现有的小提琴中时,它不起作用:(但是你的代码看起来很有效。我发现这是jQuery版本的问题,我使用的是1.12.4,它适用于3.3.1。别忘了你需要更改
id=“toSort”
到类。jQuery版本不会影响这一点,因为它不使用在这些版本中更改过的任何方法。它可以追溯到1.9.1:。可能也会更进一步,但这是JSFIDLE将要做的