将类添加到父范围元素jQuery

时间:2018-11-19 21:59:26

标签: javascript jquery

我正在尝试将复选框父元素(跨度)的类更改为选中。我正在关注these steps,但收到错误消息:

$ checkbox.parentNode.addClass不是一个函数     在HTMLInputElement。

这是website

这是JS代码:

<script type="text/javascript">
        document.getElementById("generateVin").addEventListener("click", function(){

                var $checkbox = document.querySelectorAll("input[type='checkbox']")[1];
                var $span=$checkbox.closest("span");
                $checkbox.parentNode.addClass("checked");

});
        </script>

1 个答案:

答案 0 :(得分:1)

您正在将jQuery与原始JavaScript混合使用。 .addClass() jQuery 方法,这意味着它只能在 jQuery 元素上调用。

$checkbox.parentNode不是 一个jQuery元素,而是一个标准的JS元素。

如果您致力于使用jQuery,则强烈建议您“一路走好”,而不是来回走动。该代码看起来像这样:

$("#generateVin").on("click", function() {
    var $checkbox = $("input[type=checkbox]").eq(1);
    var $span = $checkox.closest("span");    //This doesn't seem to be needed
    $checkbox.parent().addClass("checked");
});

  • 使用jQuery选择器语法定位generateVin$("#generateVin")

  • 使用的jQuery事件处理程序:.on("click", function() { ... })

  • 使用jQuery选择器和.eq()$checkbox转换为jQuery元素:var $checkbox = $("input[type=checkbox]").eq(1);

  • 使用jQuery的parent()代替parentNode