Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.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_Php_Jquery_Arrays_Sorting - Fatal编程技术网

Javascript 如何分类<;李>;元素,并将结果

Javascript 如何分类<;李>;元素,并将结果,javascript,php,jquery,arrays,sorting,Javascript,Php,Jquery,Arrays,Sorting,我正在为幼儿园的孩子们做一个在线考试,在这次考试中,我有一些列表元素,由0-6之间的零散数字组成,例如: <ul> <li> <div>3</div></li> <li> <div>0</div></li> <li> <div>4</div></li> <li> <div>6</div>&l

我正在为幼儿园的孩子们做一个在线考试,在这次考试中,我有一些列表
  • 元素,由0-6之间的零散数字组成,例如:

    <ul>
      <li> <div>3</div></li>
      <li> <div>0</div></li>
      <li> <div>4</div></li>
      <li> <div>6</div></li>
      <li> <div>1</div></li>
      <li> <div>2</div></li>
      <li> <div>5</div></li>
    </ul>
    
    • 三,
    • 0
    • 四,
    • 六,
    • 一,
    • 二,
    • 五,

    我使用jQuery sortable使其可排序,因此孩子们只需拖动数字框列表,使其按正确的顺序排列,即0,1,2,3。。那很好。现在的问题是,我如何检查他们是否正确排序并显示错误答案和正确答案。

    您可以这样做:检查
  • 索引()
    是否等于其
    中的文本。如果是这样,它就在正确的位置

    $(“ul”).sortable();
    $(“#检查”)。在(“单击”,函数(){
    $(“ul li”)。每个(函数(){
    if($(this.index()==$(this.find(“div”).text()){
    $(此).addClass(“右”);
    }否则{
    $(此).addClass(“错误”);
    }
    });
    });
    
    。错了{
    颜色:红色;
    }
    .对{
    颜色:绿色;
    }
    
    
    • 3.
    • 0
    • 4.
    • 6.
    • 1.
    • 2.
    • 5.
    检查
    您可以这样处理它:检查
  • 索引()是否等于其
    中的文本。如果是这样,它就在正确的位置

    $(“ul”).sortable();
    $(“#检查”)。在(“单击”,函数(){
    $(“ul li”)。每个(函数(){
    if($(this.index()==$(this.find(“div”).text()){
    $(此).addClass(“右”);
    }否则{
    $(此).addClass(“错误”);
    }
    });
    });
    
    。错了{
    颜色:红色;
    }
    .对{
    颜色:绿色;
    }
    
    
    • 3.
    • 0
    • 4.
    • 6.
    • 1.
    • 2.
    • 5.
    检查
    您列出的示例如下所示

    • 0
    • 一,
    • 二,
    • 三,
    • 四,
    • 五,
    • 六,
    您可以在下面列出代码列表 函数checkAnswer(){ var-answer=true; $(“#测试li”)。每个(函数(i,li){ 答案=parseInt($(li).text(),10)==i; }); 返回答案; }


    您列出的示例如下所示

    • 0
    • 一,
    • 二,
    • 三,
    • 四,
    • 五,
    • 六,
    您可以在下面列出代码列表 函数checkAnswer(){ var-answer=true; $(“#测试li”)。每个(函数(i,li){ 答案=parseInt($(li).text(),10)==i; }); 返回答案; }


    你应该做的是有两个数字数组,一个是原始排序的,另一个是随机排序的。然后可以按随机化数组的顺序呈现列表项。使用事件处理程序进行
    拖动
    拖放
    dragover
    以捕获所拖动元素的
    内部文本
    ,以及所拖动元素的
    内部文本
    。现在您已经有了这些值,您可以在随机化数组中获得这两个值的索引,删除被拖动元素索引处的项,然后将其插入被拖动元素的索引处。这些操作可以使用
    拼接
    实现。请参阅下面的代码片段

    var list=document.getElementById('list'))
    var nums=[0,1,2,3,4,5,6];
    拖拽,拖拽;
    var randomNums=[0,1,2,3,4,5,6];
    var isRight='不符合顺序!';
    常量genRandom=()=>{
    randomNums=randomNums.sort(()=>Math.random()-0.5)
    renderItems(随机数)
    }
    常量renderItems=(数据)=>{
    document.getElementById('isRight')。innerText=isRight
    list.innerText=“”
    data.forEach(num=>{
    var节点=document.createElement(“li”);
    node.draggable=true
    node.addEventListener('drag',SetDraging)
    node.addEventListener('drop',compare)
    node.addEventListener('dragover',allowDrop)
    var textnode=document.createTextNode(`${num}`);
    node.appendChild(textnode);
    list.appendChild(节点)
    })
    拖动=空
    draggedOver=null
    }
    常数比较=(e)=>{
    var index1=randomNums.indexOf(拖动);
    var index2=随机数indexOf(draggedOver);
    随机数拼接(index1,1)
    随机数拼接(index2,0,拖动)
    if(randomNums.join(“”)=nums.join(“”){
    isRight=“按顺序!”
    }否则{
    isRight='不符合顺序!'
    }
    renderItems(随机数)
    };
    功能allowDrop(ev){
    ev.preventDefault();
    draggedOver=parseInt(ev.target.innerText)
    }
    常量设置拖动=(e)=>{
    拖动=parseInt(e.target.innerText)
    }
    genRandom()
    #容器{
    宽度:300px;
    显示:块;
    保证金:自动;
    }
    p{
    浮动:对;
    }
    #李列表{
    背景颜色:浅蓝色;
    利润率:10px;
    }
    
    
    
    


    您应该做的是有两个数字数组,一个是原始排序的,另一个是随机排序的。然后可以按随机化数组的顺序呈现列表项。使用事件处理程序进行
    拖动
    拖放
    dragover
    以捕获所拖动元素的
    内部文本
    ,以及所拖动元素的
    内部文本
    。现在您已经有了这些值,您可以在随机化数组中获得这两个值的索引,删除被拖动元素索引处的项,然后将其插入被拖动元素的索引处。这些操作可以使用
    拼接
    实现。请参阅下面的代码片段

    var list=document.getElementById('list'))
    var nums=[0,1,2,3,4,5,6];
    拖拽,拖拽;
    var randomNums=[0,1,2,3,4,5,6];
    var isRight='不符合顺序!';
    常量genRandom=()=
    
    function getList() {
      var list = [];
      $("#test li").each(function(i, li) {
        list.push($(li).text());
      });
      return list.join(", ");
    }
    
    var ans = checkAnswer();
    if (!ans) {
      console.log(getList() + " is not sorted");
    } else {
      console.log(getList() + " is sorted");
    }