Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
jquery中的map()方法,如何按字母顺序排列_Jquery - Fatal编程技术网

jquery中的map()方法,如何按字母顺序排列

jquery中的map()方法,如何按字母顺序排列,jquery,Jquery,我正在尝试学习如何使用jQuery按字母顺序排列这个列表。我想我可以使用map()方法,但它似乎不起作用,因为单词在每行上都不分开 HTML 项目列表 A-Z 山丘 是 活的 与 JQUERY let array = []; $('#wordlist li').each(function(){ let print = $(this).html(); array.push(print); return array }); console.log(array

我正在尝试学习如何使用jQuery按字母顺序排列这个列表。我想我可以使用map()方法,但它似乎不起作用,因为单词在每行上都不分开

HTML

项目列表
A-Z
  • 山丘
  • 活的
JQUERY

    let array = [];
$('#wordlist li').each(function(){
    let print = $(this).html();
    array.push(print);
    return array
});
console.log(array);




$('button#alpha').on('click', function(){
    array = array.sort();
    let newArray = $.map( array, function(index, item){
        return item + " " + index
    });
    $("#wordlist li").html("<li>" + newArray + "</li>")
    
});
console.log(array);
let数组=[];
$('#单词列表li')。每个(函数(){
let print=$(this.html();
数组。推送(打印);
返回数组
});
console.log(数组);
$('button#alpha')。在('click',function()上{
array=array.sort();
让newArray=$.map(数组,函数(索引,项){
返回项+“”+索引
});
$(“#单词列表li”).html(“
  • ”+newArray+“
  • ”) }); console.log(数组);
    您需要比较
    innerText
    值而不是
    innerHTML
    ,如果要对数组排序,则应使用。每次尝试排序时,请记住清空全局数组

    let数组=[];
    函数getListContent(){
    数组=[];
    $('#单词列表li')。每个(函数(){
    让print=$(this.text();
    数组。推送(打印);
    });
    返回数组;
    }
    $('button#alpha')。在('click',function()上{
    数组=getListContent();
    array.sort(函数(a,b){
    如果(a>b){
    返回1;
    }
    如果(b>a){
    返回-1;
    }
    返回0;
    });
    $(“#单词列表li”).html(“”);
    让htmlValue='';
    for(设i=0;i”+数组[i]+“”;
    }
    $(“#单词列表”).html(htmlValue)
    });
    
    
    项目清单
    A-Z
    
    • 山丘
    • 活的

    无需创建阵列或创建替换元素

    这要简单得多,因为可以在jQuery集合上使用sort(),因为它是一个类似数组的对象。在排序比较器函数中使用
    aText.localeCompare(bText)

    排序后,只需将整个已排序集合附加到父列表。因为一个元素只能存在于一个地方,所以它将在集合中循环,并将每个元素附加到它的新位置

    const$list=$(“#单词列表”)
    $('button#alpha')。在('click',function()上{
    const$items=$list.children().sort(函数(a,b){
    返回$(a).text().localeCompare($(b).text())
    });
    $list.append($items)
    });
    
    
    项目清单
    A-Z
    
    • 山丘
    • 活的

    最好完全跳过全局数组!还值得注意的是,您提供的排序函数是默认行为,因此,虽然它作为学习辅助工具很有用,但如果您要命名函数
    getSortedArray
    ,则该函数应该进行排序,这将有助于添加一条注释,说明它不是必需的。所以我建议重命名它,或者移动sort@FredStark,使用字符串时,最好创建自己的排序回调,因为有时它会给出意外的结果。在此处找到答案
        let array = [];
    $('#wordlist li').each(function(){
        let print = $(this).html();
        array.push(print);
        return array
    });
    console.log(array);
    
    
    
    
    $('button#alpha').on('click', function(){
        array = array.sort();
        let newArray = $.map( array, function(index, item){
            return item + " " + index
        });
        $("#wordlist li").html("<li>" + newArray + "</li>")
        
    });
    console.log(array);