- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从 html 页面,我可以通过 querySelectorAll.
获取 Node 列表之后,通过一个循环,我得到了我需要工作的 Node :
给定具有以下格式的 Node 列表的 Node :
<div id="search_filters">
<section class="facet clearfix">
<p>something3</p>
<ul>
<li>text1 abc-def 200-201<span>(35)</span></li>
<li>text2 hjk-lef 203 <span>(11)</span></li>
<li>text3 fgh 204 <span>(250)</span></li>
<li>text4 sfsa 205 <span>(100)</span></li>
</ul>
</section>
</div>
我正在尝试对 <li>
进行排序以 desc 数字方式。
例如,如果我有几个 li
像这样的文字:
1) abc-def 200-201
2) fgh 204
3) hjk-lef 203
我想像这样对它们进行排序(最后一个数字是排序的重要内容,因此在(3)重要的是 201 的情况下):
1) fgh 204
2) hjk-lef 203
3) abc-def 200-201
我曾经认为可以在临时 Node 上 trim 单词,然后按降序对数字进行排序,但在我需要工作的 Node 上放置正确的顺序时遇到了麻烦。
有什么想法吗?
最佳答案
这是我使用 sort prototype 让它工作的方法和 regular expressions
<section class="facet clearfix">
<ul id="facet_67493" class="collapse">
<li>
<label class="facet-label" for="facet_input_67493_0">
<span class="custom-checkbox">
<input id="facet_input_67493_0" data-search-url="#?q=Stagione-Autunno--Inverno+2014--2015" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Autunno--Inverno+2014--2015" class="_gray-darker search-link js-search-link" rel="nofollow">
Autunno-Inverno 2014-2015
<span class="magnitude">(1)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_1">
<span class="custom-checkbox">
<input id="facet_input_67493_1" data-search-url="#?q=Stagione-Autunno--Inverno+2015--2016" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Autunno--Inverno+2015--2016" class="_gray-darker search-link js-search-link" rel="nofollow">
Autunno-Inverno 2015-2016
<span class="magnitude">(3)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_2">
<span class="custom-checkbox">
<input id="facet_input_67493_2" data-search-url="#?q=Stagione-Autunno--Inverno+2016--2017" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Autunno--Inverno+2016--2017" class="_gray-darker search-link js-search-link" rel="nofollow">
Autunno-Inverno 2016-2017
<span class="magnitude">(27)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_3">
<span class="custom-checkbox">
<input id="facet_input_67493_3" data-search-url="#?q=Stagione-Autunno--Inverno+2017--2018" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Autunno--Inverno+2017--2018" class="_gray-darker search-link js-search-link" rel="nofollow">
Autunno-Inverno 2017-2018
<span class="magnitude">(75)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_4">
<span class="custom-checkbox">
<input id="facet_input_67493_4" data-search-url="#?q=Stagione-Autunno--Inverno+2018--2019" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Autunno--Inverno+2018--2019" class="_gray-darker search-link js-search-link" rel="nofollow">
Autunno-Inverno 2018-2019
<span class="magnitude">(203)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_5">
<span class="custom-checkbox">
<input id="facet_input_67493_5" data-search-url="#?q=Stagione-Autunno--Inverno+2019--2020" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Autunno--Inverno+2019--2020" class="_gray-darker search-link js-search-link" rel="nofollow">
Autunno-Inverno 2019-2020
<span class="magnitude">(268)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_6">
<span class="custom-checkbox">
<input id="facet_input_67493_6" data-search-url="#?q=Stagione-Primavera--Estate+2015" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Primavera--Estate+2015" class="_gray-darker search-link js-search-link" rel="nofollow">
Primavera-Estate 2015
<span class="magnitude">(1)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_7">
<span class="custom-checkbox">
<input id="facet_input_67493_7" data-search-url="#?q=Stagione-Primavera--Estate+2016" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Primavera--Estate+2016" class="_gray-darker search-link js-search-link" rel="nofollow">
Primavera-Estate 2016
<span class="magnitude">(3)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_8">
<span class="custom-checkbox">
<input id="facet_input_67493_8" data-search-url="#?q=Stagione-Primavera--Estate+2017" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Primavera--Estate+2017" class="_gray-darker search-link js-search-link" rel="nofollow">
Primavera-Estate 2017
<span class="magnitude">(61)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_9">
<span class="custom-checkbox">
<input id="facet_input_67493_9" data-search-url="#?q=Stagione-Primavera--Estate+2018" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Primavera--Estate+2018" class="_gray-darker search-link js-search-link" rel="nofollow">
Primavera-Estate 2018
<span class="magnitude">(220)</span>
</a>
</label>
</li>
<li>
<label class="facet-label" for="facet_input_67493_10">
<span class="custom-checkbox">
<input id="facet_input_67493_10" data-search-url="#?q=Stagione-Primavera--Estate+2019" type="checkbox">
<span class="ps-shown-by-js"><i class="material-icons rtl-no-flip checkbox-checked"></i></span>
</span>
<a href="#?q=Stagione-Primavera--Estate+2019" class="_gray-darker search-link js-search-link" rel="nofollow">
Primavera-Estate 2019
<span class="magnitude">(433)</span>
</a>
</label>
</li>
</ul>
</section>
const needle = "something3";
const selection = document.querySelectorAll('section.facet.clearfix');
let i = -1;
let targetIndex;
while(++i < selection.length){
if(selection[i].innerHTML.indexOf(needle) > -1){
targetIndex = i;
}
}
const getNum = function(node, innerElement){
const target = node.querySelector(innerElement);
if(!target){
console.warn("No matches for inner selector");
return 0;
}
let haystack = ""
if(target.childNodes.length > 0){
haystack = target.childNodes[0].textContent;
}
else{
haystack = target.innerHTML;
}
// console.info("haystack", haystack);
const numericMatches = (haystack).match(/\d{1,}/g);
const result = +numericMatches[numericMatches.length-1];
console.info("RESULT", result);
return result;
};
const ul = selection[targetIndex].querySelector("ul");
const lis = [...ul.querySelectorAll("li")].sort(function(a, b){
return getNum(b, "a") - getNum(a, "a");
});
i = -1; // We already declared this above
while(++i < lis.length){
ul.appendChild(lis[i]);
}
关于javascript - 对 Node 中的字母数字 li 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58339494/
好吧,标题说明了一切。我的 javascript 函数构建一些“ block ”并使用 和 创建它们。问题是,它删除了所有其他 在网页上。 编辑:(好吧,我假设这个函数是造成这个的原因。删除我的意思是
这个 HTML 结构有效吗? Item 1 Item 2 Item 3 Item 4 Item 5 Item 6
我正在尝试在 UL 中添加标题因为你不能在 UL 中使用 H2如果按照我展示的方式使用它可以吗? News roll News 1 News 2 我的一位 friend 告诉我
这是我的 代码风格。 li{ font-family: Arial, sans-serif; font-size: 100%; color: black; display : list-item;
我正在使用 a 进行水平导航,感谢问题:Separators For Navigation ,我读到了使用 li + li 设置基于图像的元素分隔符的好方法。 (伪?)选择器。 在我的代码中,我为
我有一个 Div 容器,其中包含 4 我正在做的是在前面加上 进入并删除最后一个 我很容易使用 $('#news-ul li:last').remove() $('#news-ul').prepe
这是 html: menu item menu item menu item menu item menu item 如果我按“a”链接,它会将“当
我有 ul-li 列表 1 2 3 A B 我可以在列表中使用纯 css 最后一个选择器“.digit”吗? .digit 的数量未知 ul li.digit:nth-last-ch
我有这种情况,1- 我想删除一个带有两个图标的 li,它作为一个跨度在里面:一个是选中或取消选中相应的 li,另一个是删除那个 li。2- 我还想通过单击图标(选中图标)同时单击 li 来选中或取消选
如果标题不好理解,我来解释一下... 我有一个 css/jquery 切换菜单。按“+”号时它变大,按“-”号时它变小。我使几个元素的填充、边距和高度在切换/单击时发生变化。菜单顶部充满了链接,然后当
我有一个脚本 ( JsFiddle here ) 检测 li block 元素何时在页面上垂直居中并为其分配一个 .centered 类以使其更大通过 CSS。 .centered { hei
代码在这里:http://jsfiddle.net/C5mTf/49/我不知道为什么。下面的代码有问题吗? $("#menu").on('click','li',function (){ va
我为这个问题苦苦挣扎了几个小时,但仍然无法解决问题。 我有这样的 html 代码: aaaa11 bbbb11 我想知道如何使用 css 让 每里一行显示。但是 标签仍然具有垂
我需要使用水平缩放的 ul > li > ul 的组合来创建一个菜单。每个 ul 都应该有一个 max-height 并在溢出时滚动。悬停在 li 上时,如果里面有另一个 ul 标签,它应该会在右侧打
我了解到,如果我指的是 在 内或 在 CSS 中我应该使用 ol > li或 ul > li但是一旦我忘记在 ol 和 li 之间放置标志,我发现它仍然有效。执行此操作的正确方法是什么? 最佳答案
Question 1 Answer: $('#addquestion').click(function() { var $question_number
我如何在 中显示我的数组值? 我的代码: HTML JS var myList = [ ['1','one'], ['1','two'], ['1','th
我在使用代码编辑器时遇到了问题所以就在这里 Item1 Item 1.1 Item 1.2 Item2
我正在为我的网站创建响应式移动版本。正如您在此 jsfiddle 中看到的那样, 当用户将鼠标悬停在 上时项,菜单打开但覆盖了 而不是展开菜单。 我已经添加了 display: block在不同的地
我正在尝试创建一个网站,但我偶然发现了一个小问题,我正在使用 bootsnipp(一个侧面菜单)中的一个片段,我无法让它工作,所以链接将覆盖整个 LI,而不是你必须按自己的文字如果我改变它,那么它会坐
我是一名优秀的程序员,十分优秀!