Javascript / Jquery-单击打开选定的表格单元格,并在单击其他单元格时将其关闭

问题描述 投票:1回答:1

我目前正在学习Javascript / Jquery,希望在这里获得一些帮助! 仅想编辑我的Javascript文件,而不是HTML / CSS。

所以基本上,我在桌子上随机放置了10张不同的图像(image1-10.png),它将被另一张图像(card.jpg)覆盖。 我希望我的结果像这样:选定的单元格将打开,以显示随机图像(image.png)并在单击另一个单元格时关闭(返回默认图像card.jpg)。但我当前的代码将无论单击哪个,都打开所有单元格。

HTML:

<table id="choices">
<tr>
<td><div class="choicesDiv" value=1></div></td>
<td><div class="choicesDiv" value=2></div></td>
<td><div class="choicesDiv" value=3></div></td>
<td><div class="choicesDiv" value=4></div></td>
<td><div class="choicesDiv" value=5></div></td>
</tr>
<tr>
<td><div class="choicesDiv" value=6></div></td>
<td><div class="choicesDiv" value=7></div></td>
<td><div class="choicesDiv" value=8></div></td>
<td><div class="choicesDiv" value=9></div></td>
<td><div class="choicesDiv" value=10></div></td>
</tr>
</table>

Javascript:

$(document).ready(function(){
    $(".choicesDiv").append("<img src='images/card.jpg' width='100%' height='100%' />" )

    var images= ['images/image1.png','images/image2.png','images/image3.png','images/image4.png','images/image5.png','images/image6.png','images/image7.png','images/image8.png','images/image9.png','images/image10.png'] 
    var randomArr = [] 
    for(var i= 0 ; i < images.length;i++){
        var item = images[Math.floor(Math.random() * images.length)]
        // this condition to prevent doublicate elements
            if(!randomArr.includes(item)){
                randomArr.push(item)
            }else{
                i = i - 1;
            }
        }

        $(".choicesDiv").click(function(){
            $("table#choices .choicesDiv").each(function(index, value){
                if(index > randomArr.length) {
                    $(this).html("<img src='images/card.jpg' />")
                }else{
                    $(this).html("<img src='"+randomArr[index]+"' />")
                }
            })

        })
});

我目前正在学习Javascript / Jquery,希望在这里获得帮助!只想编辑我的Javascript文件,而不要编辑HTML / CSS。所以基本上,我的...中有10张不同的图像(image1-10.png)...] >>

我已经更新了您的点击功能,请检查

$(".choicesDiv").click(function(){
    $(this).html("<img src='images/card.jpg' />");
    $("table#choices .choicesDiv").not($(this)).each(function(index, value){
        $(this).html("<img src='"+randomArr[index]+"' />");
    });
});
javascript jquery
1个回答
0
投票

我已经更新了您的点击功能,请检查

© www.soinside.com 2019 - 2024. All rights reserved.