使用带有动态字符串的find()进行Jquery

使用带有动态字符串的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

我的问题是如何使用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" 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') +  "]";
});