我是jQuery的新手,我正在尝试创建一款允许用户在10张图片列表中查看3张图片的游戏。当用户单击列表底部的按钮时,我想将选中的图像附加到单独的无序列表中(我已创建)。
<ul id="imageNinpputList">
<li><image src="pics/hammer.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/hardhat.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/paintbrush.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/screw.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/screwdriver.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/shovel.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/vest.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/wrench.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/cone.jpg"><input type="checkbox" name="tool"></li>
<li><image src="pics/flashlight.jpg"><input type="checkbox" name="tool"></li>
</ul>
</div>
<button id="confirm">100% Sure!!!</button>
</div>
<div class="hidden" id="checkedImageContainer">
<ul class="checkedImageList">
</ul>
</div>
当$(#confirmed).clicked
我想要追加每个被检查的li时,只有它的图像是孩子。
我之前的jquery只允许用户点击3个复选框......
$("input[type=checkbox]").click(function() {
let maxCheckedNum = $("input[type=checkbox]:checked").length >= 3;
$("input[type=checkbox]").not(":checked").attr("disabled",maxCheckedNum);
});
答案 0 :(得分:0)
只需循环选中已选中的复选框,找到同级img
代码的HTML,然后将其附加到li
ul
checkedImageList
$(#confirmed).click(function(){
if($("input[type=checkbox]:checked").length == 3) {
var img;
$("input[type=checkbox]:checked").each(function(){
img = $(this).closest('li').find('img').html();
$('#checkedImageContainer .checkedImageList').append('<li>'+img+'</li>');
});
$('#checkedImageContainer').removeClass('hidden');
}
else {
//validation for clicking atleast three images
}
});
答案 1 :(得分:0)
在按钮上单击,获取具有该名称的所有输入复选框的列表,然后循环它以获取兄弟图像的src ..
$('#btnAppend').click(function() {
$("input[name='tool']").each(function() {
if ($(this).is(':checked')) {
$('#secondList').append('<li><img src="' + $(this).parent('li').find('img').attr('src') + '"></li>');
}
});
});
检查这个小提琴
答案 2 :(得分:0)
只需克隆li
并删除input
元素和append
:
$('#confirm').click(function() {
if ($("input[type=checkbox]:checked").length == 3) {
$("#imageNinpputList li input").each(function() {
if ($(this).is(':checked')) {
var li = $(this).parent().clone();
li.find('input').remove();
$('#checkedImageContainer ul').append(li);
}
});
} else {
alert('Select 3 images !')
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<ul id="imageNinpputList">
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
<li> <img src="http://via.placeholder.com/50x25"><input type="checkbox" name="tool"></li>
</ul>
<div>
<button id="confirm">100% Sure!!!</button>
</div>
<hr>
<div class="hidden" id="checkedImageContainer">
<ul class="checkedImageList">
</ul>
</div>
&#13;