*请完整阅读 - 我首先使用示例编码 - 然后我的实际代码更具描述性 *
我想根据图像名称按 DESCENDING 顺序对 div 进行排序。
从此改变:
<div id="content">
<p><img src="image/1.jpg"/></p>
<p><img src="image/3.jpg"/></p>
<p><img src="image/4.jpg"/></p>
<p><img src="image/2.jpg"/></p>
</div>
至此
<div id="content">
<p><img src="image/4.jpg"/></p>
<p><img src="image/3.jpg"/></p>
<p><img src="image/2.jpg"/></p>
<p><img src="image/1.jpg"/></p>
</div>
但是,我在这里使用此代码来填充“内容”div 中的图像。由于用户每天都在上传图像,因此使用下面的代码从另一个目录中提取这些图像路径。该内容 div 需要自行填充。
<script>
$.ajax({
url: "user-uploads-thumbnails",
success: function(data){
$(data).find("a:contains(.jpg)").each(function(){
// will loop through
var images = 'user-uploads-thumbnails/' + $(this).attr("href");
var linkimage = 'user-uploads/' + $(this).attr("href");
//backup $('<p><a href="' + linkimage + '"><img src="' + images + '"></a></p>').appendTo('#content');
$('<p><a class="fancybox" href="' + linkimage + '" data-fancybox-group="gallery"><img src="' + images + '"></a></p>').appendTo('#content');
});
}
});
</script>
下面的这个脚本仅在我将 url 硬编码到“内容”div 中时才有效。但是,每天都会将图像添加到另一个目录中,我需要它来自行填充。当我使用上面的脚本来拉路径时 ^^ 它不起作用。
<script>
function sort(container) {
var images = [],
paragraphs = container.getElementsByTagName('p');
while(!!paragraphs.length) {
var p = paragraphs[0];
images.push(p.getElementsByTagName('img')[0].getAttribute('src'));
container.removeChild(p);
}
images = images.sort();
console.log(images);
for(var i = images.length; i-- > 0;) {
var p = document.createElement('p'),
img = document.createElement('img');
img.src = images[i];
p.appendChild(img);
container.appendChild(p);
}
}
var container = document.getElementById('content');
sort(container);
</script>