使用特定输入将类添加到父div

时间:2014-08-10 10:06:13

标签: jquery

我有以下情况:

<div class="control-group">
  <label class="control-label" for="first_name">
    First name
  </label>
  <div class="controls">
    <input id="first_name" type="text" value="rybka">
  </div>
</div>

我有输入的ID。我想用&#34; control-group&#34;添加到div的类。具有指定id的类和输入。如果完美的方式怎么办?

编辑:

感谢我使用该解决方案的所有答案:

$(".control-group:has(#specificId)").addClass('yourClass');

4 个答案:

答案 0 :(得分:9)

尝试在此上下文中使用:has()选择器,

$(".control-group:has(#specificId)").addClass('yourClass');

或者您也可以使用.closest()

$("#specificId").closest(".control-group").addClass('yourClass');

答案 1 :(得分:4)

使用.parents()获取所有父元素,使用.addClass()将类添加到元素。试试这个:

$("#first_name").parents(".control-group").addClass("testClass");

<强> DEMO

答案 2 :(得分:1)

我为你的问题创建了jsfiddle,你应该最接近代替最近的工作速度更快,然后 方法查看代码并为其工作jsfiddle。

代码: -

$(document).ready(function() {
    console.time("has")
    $(".control-group:has(#first_name)").addClass('yourClass');
    console.timeEnd("has")

    console.time("closest")
    $("#specificId").closest(".control-group").addClass('yourClass');
    console.timeEnd("closest")

});

工作jsfiddle示例: - http://jsfiddle.net/dwxmjkb3/13/

在控制台上查看结果。

感谢

答案 3 :(得分:0)

没有完美的方法,但有许多方法可以做到这一点。我假设您要添加输入中添加的类。

$('input').change(function () {
    $(this).parent().parent().addClass('someclass');
});

这将一直回到顶级父级,并将添加该类。