使用带有动态字符串的find()进行Jquery
我的问题是如何使用jquery find()根据选中的复选框查找正确的listitems?我尝试过动态构建字符串,但它不起作用 有没有更简单的方法 我有几个列表项和几个复选框,都是这样标记的使用带有动态字符串的find()进行Jquery,jquery,Jquery,我的问题是如何使用jquery find()根据选中的复选框查找正确的listitems?我尝试过动态构建字符串,但它不起作用 有没有更简单的方法 我有几个列表项和几个复选框,都是这样标记的 <li class="item" data-id="2" data-type="Bokföringsprogram" operativsystem='Windows' > <li class="item" data-id="2" data-type="Bokföringsprogram
<li class="item" data-id="2" data-type="Bokföringsprogram" operativsystem='Windows' >
<li class="item" data-id="2" data-type="Bokföringsprogram" operativsystem='Windows' operativsystem='MAC OS' >
<li class="item" data-id="67" data-type="Faktureringsprogram" operativsystem='Windows' operativsystem='MAC OS' >
<li><input type="checkbox" name="boxvalidator" value="Windows" />Windows<br /></li>
<li><input type="checkbox" name="boxvalidator" value="MAC OS" />MAC OS<br /></li>
<li><input type="checkbox" name="boxvalidator" value="Ubuntu" />Ubuntu<br /></li>
<li><input type="checkbox" name="boxvalidator" value="Linux" />Linux<br /></li>
字符串如下所示:
未定义,li[operativsystem=~Windows],,li[operativsystem=~MAC OS]
一定是一种更简单的方法
干杯,谢谢你一路读到这里 正如斯加雷特所说,您的选择器$('input:checkbox[name=“boxvalidator”]:checked')看起来不错。由于要选择列表项而不是复选框,只需修改此选择器以选择返回复选框的父项: $('input:checkbox[name=“boxvalidator”]:checked')。父项()来自此: 字符串如下所示:未定义,li[operativsystem=~Windows],,li[operativsystem=~MAC OS] 看起来您可能希望在该函数之外的某个点设置
$boxchecked='
。或者,您可以执行以下操作以避免额外的逗号:
$('input:checkbox[name="boxvalidator"]:checked').each(function()
{
if (typeof $boxchecked !== 'undefined') {
$boxchecked = $boxchecked + ",";
}
else {
$boxchecked = "";
}
$boxchecked = $boxchecked + "li[operativsystem=~" + $(this).attr('value') + "]";
});
也就是说,@veblock的解决方案看起来是一种更好的方式来获得你想要的东西。什么是
$portfolioClone
?你拿这些复选框做什么?选择器$('input:checkbox[name=“boxvalidator”]:checked')
看起来正确。
$('input:checkbox[name="boxvalidator"]:checked').each(function()
{
if (typeof $boxchecked !== 'undefined') {
$boxchecked = $boxchecked + ",";
}
else {
$boxchecked = "";
}
$boxchecked = $boxchecked + "li[operativsystem=~" + $(this).attr('value') + "]";
});