Javascript 单击按钮后,使用jquery将选中的复选框值发送到函数

Javascript 单击按钮后,使用jquery将选中的复选框值发送到函数,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我有一个html代码,我在其中选中复选框,并在每个复选框旁边提供一个锚定标记和某些文本标记。当用户单击父复选框时,将选中子复选框。现在,单击“OK”按钮后,我需要将选中的复选框发送到javascript函数。正如在我的代码中,复选框没有值一样,我需要将相应的锚标记值发送到javascript函数。但是所有的锚定标签都被发送到函数中。我只希望将对应锚定标记值的复选框发送到函数 <ul class="test_ex"> <li> <input t

我有一个html代码,我在其中选中复选框,并在每个复选框旁边提供一个锚定标记和某些文本标记。当用户单击父复选框时,将选中子复选框。现在,单击“OK”按钮后,我需要将选中的复选框发送到javascript函数。正如在我的代码中,复选框没有值一样,我需要将相应的锚标记值发送到javascript函数。但是所有的锚定标签都被发送到函数中。我只希望将对应锚定标记值的复选框发送到函数

<ul class="test_ex">
    <li>
        <input type="checkbox" id="chckBox" class="parent" onchange="fnTest(this);" /> <a class="ref">Fruits</a>

        <ul class="example">
            <li>
                <input type="checkbox" id="chckBox" class="child" /> <a class="ref"> Apple </a>

            </li>
            <li>
                <input type="checkbox" id="chckBox" class="child" /> <a class="ref"> Orange </a>

            </li>
        </ul>
        <ul class="test_ex_sample">
            <li>
                <input type="checkbox" id="chckBox" class="parent" onchange="fnTest(this);" /> <a class="ref">Birds</a>

                <ul class="example">
                    <li>
                        <input type="checkbox" id="chckBox" class="child" /> <a class="ref"> Peacock </a>

                    </li>
                    <li>
                        <input type="checkbox" id="chckBox" class="child" /> <a class="ref">Parrot </a>

                    </li>
                </ul>
                <ul class="example">
                    <li>
                        <input type="checkbox" id="chckBox" class="parent" onchange="fnTest(this);" /> <a class="ref"> Food </a>

                        <ul class="example">
                            <li>
                                <input type="checkbox" id="chckBox" class="child" /> <a class="ref">Bread </a>

                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
<input type="button" id="testB" onclick="submit(document.getElementsByTagName('input'))" value="OK" />

  • 我强烈建议从输入中删除
    onclick
    onchange
    属性。将它们绑定到javascript文件中,这样会更干净


    下面是一些修改过的代码,它可以按照您的要求执行。单击复选框也会自动单击嵌套的复选框,反之亦然。单击“确定”将使用以下

    您的提交功能如下

    function submit(check) {
        var values = [];
        for (i = 0; i < check.length; i++) {
            if (check[i].checked == true) {
                //  alert($(check[i]).value);
                var el = $(check[i]);
    
              var test = el.next().text();
               alert(test);
    
                values.push($(test).text());
            }
        }
        // alert(values.eq(0));
        alert(values.join());
        //alert(values);
        //var text[]=values.text();
        //  alert(text);
    }
    
    功能提交(检查){
    var值=[];
    对于(i=0;i

    您可以像这样简化代码:

    function submit() {
        var values = [];
        $("input[type=checkbox]:checked").each(function(){
            values.push($(this).next("a").text());
        });
        alert(values.join());
    }
    
    在按钮上删除该参数,因为您不需要该参数

    <input type="button" id="testB" onclick="submit()" value="OK" />
    
    
    
    您应该尽量避免使用不一致的库。如果您使用的是jQuery,则不应随机使用
    document.getElementByID
    。当您使用DOM节点和不同变量的jQuery元素时,这会让人感到困惑。好的,sir ii将更改我所遵循的方法,但现在如何解决问题?答案已发布在下面,希望有帮助!
    function submit() {
        var values = [];
        $("input[type=checkbox]:checked").each(function(){
            values.push($(this).next("a").text());
        });
        alert(values.join());
    }
    
    <input type="button" id="testB" onclick="submit()" value="OK" />