Javascript 分区';It’不是按类别分类的
我发现这应该和我要找的有关,也就是按类对列表进行排序。然而,在我的代码中,它不起作用。所以我想知道如何解决这个问题。我有两门课,“离线”和“无”。我希望类“脱机”出现在顶部,类“无”出现在底部的“脱机”区域下。我在每个div中还有一个类是“indbox”,因此,我尝试使用“getElementsByClassName”但它不起作用 这是我的Javascript 分区';It’不是按类别分类的,javascript,jquery,css,Javascript,Jquery,Css,我发现这应该和我要找的有关,也就是按类对列表进行排序。然而,在我的代码中,它不起作用。所以我想知道如何解决这个问题。我有两门课,“离线”和“无”。我希望类“脱机”出现在顶部,类“无”出现在底部的“脱机”区域下。我在每个div中还有一个类是“indbox”,因此,我尝试使用“getElementsByClassName”但它不起作用 这是我的 $(文档).ready(函数(){ $(“.con按钮”)。单击(函数(){ var cssObj={}; cssObj.left=$(this).pos
$(文档).ready(函数(){
$(“.con按钮”)。单击(函数(){
var cssObj={};
cssObj.left=$(this).position().left;
cssObj.width=$(this).outerWidth();
$(“.controls.effect”).css(cssObj);
如果(this.id==“c-all”){
$('.offline').hide();
$('.offline').fadeIn(“slow”).show();
$('.online').hide();
$('.online').fadeIn(“slow”).show();
$('.none').fadeIn(“慢”).show();
}else if(this.id==“c-online”){
$('.offline').hide();
$('.online').hide();
$('.online').fadeIn(“slow”).show();
$('.none').hide();
}else if(this.id==“c-offline”){
$('.offline').hide();
$('.offline').fadeIn(“slow”).show();
$('.online').hide();
$('.none').hide();
}
});
$(“.con按钮”).eq(0).触发器(“单击”);
getSteams();
var elem=$('#offline').find('div').sort(sortMe);
功能排序(a,b){
返回a.getElementsByClassName(“脱机”)
html,正文{
身高:100%;
保证金:0;
背景色:#ffffff;
}
.包装纸{
文本对齐:居中;
位置:相对位置;
宽度:100%;
身高:100%;
显示:块;
}
.集装箱{
宽度:75%;
利润率:30px自动0;
位置:相对位置;
}
.标志盒img{
宽度:20%;
保证金:0自动;
}
.控制{
位置:相对位置;
宽度:100%;
}
.con按钮{
位置:相对位置;
背景色:白色;
边界:无;
保证金:0.5em0;
填充:0.5em 1em 0.5em 1em;
文本对齐:居中;
颜色:rgb(100,65164);
字体大小:20px;
过渡:.4s;
}
.con按钮:悬停{
光标:指针;
/*边框底部:3倍实心rgba(2242172361)*/
}
.con按钮:焦点{大纲:0;}
.hr{
边框顶部:1px实心#6441A4;
}
.效果{
位置:绝对位置;
显示:块;
左:0;
底部:5px;
高度:2倍;
宽度:60px;
过渡:0.4s缓进缓出;
/*边框底部:3倍实心rgba(100,65,164,1)*/
背景:#6441A4;
}
indbox先生{
宽度:100%;
显示:块;
利润率:5px0px;
填充:8px 0px;
}
.在线{
背景色:#98FB98;
}
.离线{
背景色:#ff9999;
}
.没有{
背景色:#D3;
}
全部的
在线 的
离线
通过查看您的代码,我发现您正在使用此功能;但是,您的操作方式不正确。在示例中,他们有:
function compare(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}
因此,为了在“none”之前排序“offline”,函数必须返回1
function sortMe(a, b){
if (a.hasClass("offline")) {
return 1; //if an element has offline, move it above.
} else {
return -1; //if an element doesn't have offline, it means it's none. Move it down.
}
}
您可能需要添加条件以检查它们是否都有脱机类。您的问题可以通过使用以下选项解决:
appendTo();
方法
而不是:
append();
方法
我在您的html代码中添加了两个附加div,并对您的javascript代码做了一个小小的更改,它可以正常工作 html如下所示:
<div class="divider"><hr></div>
<div id="online"></div>
<div id="offline">
<div class="notconnected"></div>
<div class="nonexisting"></div>
</div>
</div>
javascript在这里进行了更改:
if(data2.status == 404) {
game = "The Account doesn't exist";
status = "none";
}
else {
game = "Offline";
status = "offline";
}
if(status==="none"){
$('<div class="indbox ' + status + '" id="'+status+'"><a target="_blank" href="#">'+ indchannel + '<br/>' + game +'</a></div>').appendTo(".nonexisting");}
else{
$('<div class="indbox ' + status + '" id="'+status+'"><a target="_blank" href="#">'+ indchannel + '<br/>' + game +'</a></div>').appendTo(".notconnected");
}
} );
if(data2.status==404){
game=“账户不存在”;
status=“无”;
}
否则{
game=“离线”;
status=“离线”;
}
如果(状态==“无”){
$(“”).appendTo(“.nonexisting”);}
否则{
$('')。附于(“.notconnected”);
}
} );
该方法的文档如下:如果使用jquery,只需使用$(“.className”)。我认为它比GetElementsByclassName更好,是否可以将代码缩减到必要的部分?你的一些纯粹是为了动画“我在每个div中还有一个类是“indbox”,因此,我尝试使用“getElementsByClassName”,但它不起作用”–这是因为
getElementsByClassName
返回一个节点列表-并将使用他调用的AJAX和return的@CBroe与jsp中的类进行比较,看看我的答案:D