Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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
如何使用javascript根据日期对元素进行排序_Javascript_Sorting - Fatal编程技术网

如何使用javascript根据日期对元素进行排序

如何使用javascript根据日期对元素进行排序,javascript,sorting,Javascript,Sorting,我使用Filterizr作为模板来显示我们的出版物。 我插入了出版年份和作者。 当我试图根据出版年份或作者(按字母顺序)进行排序时,我看到图像在不断变化,但我没有得到正确的顺序。 你们谁能帮我解决这个排序问题 https://jsfiddle.net/gdhia/yLdtmeqL/ 在他们的页面上,他们说了一些我不明白的事情: .filterizr('sort'[,attr][,sortOrder]) 根据某个属性按升序或降序对元素进行排序,并在屏幕上重新排列 attr (typeof: St

我使用Filterizr作为模板来显示我们的出版物。 我插入了出版年份和作者。 当我试图根据出版年份或作者(按字母顺序)进行排序时,我看到图像在不断变化,但我没有得到正确的顺序。 你们谁能帮我解决这个排序问题

https://jsfiddle.net/gdhia/yLdtmeqL/
在他们的页面上,他们说了一些我不明白的事情:

.filterizr('sort'[,attr][,sortOrder])

根据某个属性按升序或降序对元素进行排序,并在屏幕上重新排列

attr (typeof: String / Default: 'domIndex')

The attribute based on which the elements are sorted. If not provided it defaults to value 'domIndex' and the elements are sorted based on their initial position in the DOM. If its value is set to 'sortData', the elements are sorted based on the value of the user-defined data-sort attribute. Other possible values includes 'w' or 'h' if you wish to sort your elements by width or height (used for layouts of items of different size).
我是Filterizr的作者, 您正在使用预设的Filterizr控件吗

如果要按作者姓名对项目进行排序,则需要在每个元素的“数据排序”属性中的每个项目上都包含该作者姓名。 e、 g


更新:由于您显然希望按多个条件进行排序,因此我添加了Filterizr功能,以便按自定义的用户定义的数据属性进行排序。 确保从GitHub repo获取最新的Filterizr版本,然后尝试以下操作:

<div class="filtr-item" data-author="Author Name" data-publishyear="1990"></div>
要为自定义数据属性添加控件,只需添加到选择输入:

<option value="author">Author Name</option>
<option value="publishyear">Publish Year</option>
作者姓名
出版年

您可以添加任意数量的数据属性进行排序,但请记住,在将其名称作为参数传递时,不要包含“data-”部分。我还在Filterizr网站上添加了一个深入的排序教程。享受吧

你问题的代码在你的问题中,而不仅仅是链接——这就是为什么SO不允许你发布小提琴链接而不适当地将其标记为代码的原因。你可能正在将日期作为字符串进行比较,这意味着
2016年2月1日
的排序时间将比
2016年4月1日
的排序时间早-字符串比较规则不适用于日期。@Marc,词典比较适用于ISO 8601日期,但不适用于
MMM d/yyyy
等异常。那么几乎可以肯定的是,OP的日期不是最重要的第一次排序,否则的话,一个惯例排序就“行不通了”。事实上,我只使用了日期:2010年、2011年。。。对于“项目位置”和“项目描述”(项目描述)中的“WWF”等词
<div class="filtr-item" data-author="Author Name" data-publishyear="1990"></div>
fltr.filterizr('sort', 'author', 'asc') //to sort by author name
fltr.filterizr('sort', 'publishyear', 'asc') //to sort by publish year
<option value="author">Author Name</option>
<option value="publishyear">Publish Year</option>