javascript - 动态构建列表(取决于复选框)

标签 javascript jquery checkbox html-lists dynamically-generated

我有以下问题:

我有几个复选框(目前是 11 个),我现在想做的是根据复选框的值动态“构建”一个列表,所以有这样的内容:

一位用户来了,勾选了一个复选框和一个 li出现了,当他勾选下一个,下一个li出现,当他勾选下一个,又一个 li正在出现等等(当他取消选中其中一个时, li 应该会再次消失)。我很确定这可以与 JS 一起使用,但我不知道如何实现它。
我拥有的是 <ul>以及用

定义的所有复选框
<input type="checkbox" name="check_phone" id="check_phone"/>
<label for="check_phone"><span></span>Phone Number</label>

(每个复选框都有其单独的名称)
我认为最大的问题是动态创建列表点,但我真的希望有人知道如何做到这一点。

我已经想到的是我的列表中有 11 个列表点,全部设置为 display:none然后将它们设置为 display:block当选中一个复选框时,但这可能不起作用,因为我正在使用插件来重新排序列表,并且有 11 个列表点,但只有 2 个可见或类似的东西将不起作用。

感谢您的帮助!

最佳答案

这是一个非常快速的演示,每次更改复选框时都会创建所有选中的列表项。

$(document).ready(function(){
	$('.item').on('change', function() {
		var $list = $('ul#checked').empty();

		$('.item:checked').each(function(index, item) {
			var itemName = $(item).prop('name');
            var text = $('label[for='+itemName+']').text()
			$('<li></li>')
				.text(text)
				.appendTo($list)
			;
		})

	});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="item" name="check_phone" id="check_phone"/>
<label for="check_phone"><span></span>Phone Number</label>
<ul id="checked">
</ul>

关于javascript - 动态构建列表(取决于复选框),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29603134/

相关文章:

javascript - React Redux - 在发送问题之前快速闪现之前的状态

javascript - 使用 jQuery 的转义键的哪个键码

php - jQuery 插件无法在加载了 ajax 的页面上运行

java - 无法在ListView中设置多选选择

javascript - 获取所有没有特定类别的复选框

javascript - LI 和 child 的 JQuery 鼠标悬停

javascript - Service Worker 更新事件触发器

javascript - 使用 Javascript 比较时间

jquery - 如何获取 ID 从同一字符串开始的所有输入字段的 Sum()

javascript - 将复选框文本值保存到数组