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");
}