【发布时间】:2021-07-26 15:44:25
【问题描述】:
我想知道如何使用 jQuery查看复选框元素的 HTML 属性(如此处的 cat)是否在 <ul> 元素列表中。
// checkbox like so, cat is the string I want
<input type="checkbox" name="country_code" data-cat="city_inf">
// list of elements containing my categories (when one element of it is checked in HTML code)
<ul id="sortable" class="ul_drag_el">
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Cat name 1</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Cat name 2</li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>etc..</li>
</ul>
另一个问题是,如果我想计算一个类别中有多少元素被检查以显示/隐藏li 类别名称,我应该按名称列出每个检查的元素还是只做一个计数器(仍然在 jQuery 中)。
目前我只在 jQuery 中有这个,但我真的不知道如何开始。
$("input[type='checkbox']").change(function(){
let text_to_append = "<li className='ui-state-default'><span className='ui-icon ui-icon-arrowthick-2-n-'>"
text_to_append += $(this).attr('name');
text_to_append += "</span>"
if(this.checked){
$('.ul_drag_el').append(text_to_append)
}
})
编辑:终于可以使用了
$("input[type='checkbox']").change(function(){
let this_name = $(this).attr('data-cat')
let text_to_append = "<li className='ui-state-default' data-cat='"
text_to_append += this_name
text_to_append += "'><span className='ui-icon ui-icon-arrowthick-2-n-'>"
text_to_append += this_name
text_to_append += "</span>"
if(this.checked){
$('.ul_drag_el').append(text_to_append)
}else{
$('#sortable li').each(function(){
if($(this).attr('data-cat') == this_name){
$(this).remove();
}
})
}
})
【问题讨论】:
-
对于自定义属性,您应该使用
data-,例如data-cat -
这是一个网络条款?我是说好习惯?
-
您要检查
data-cat属性是否包含在ul的猫名中吗? -
我想查看
ul列表中的li在更改我的复选框的值时是否具有data-cat 属性。像这样,如果我正在检查它,我会将<li>附加到<ul>列表中。如果我取消选中它,我需要删除与data-cat的复选框对应的<li>。
标签: javascript html jquery jquery-ui