Jquery - 找到输入的父div并更改div的子节点

时间:2017-03-16 20:52:29

标签: jquery

Ajax"移动中"形成。单击一个字段以向db发送ajax请求。如果成功 - 我想改变"黑暗"的CSS类。 这是HTML代码:

    <div class="row">
        <div class="col-sm-3 dark">Gender</div>
        <div style="" class="col-sm-3"><input type="radio" name="gender" value="m"> Male</div>
        <div class="col-sm-3"><input type="radio" name="gender" value="f"> Female</div>
        <div class="col-sm-3"></div>
</div>

逻辑是:当点击输入(任何)时(收到ajax响应) - 找到输入的父类ROW并改变css(让我们说 - &#34;颜色:绿色;&#34;)行&#34;黑暗&#34;)类。

尝试了

$(this).closest(".dark").css('color', 'green');

没有运气

1 个答案:

答案 0 :(得分:1)

暗div 不是您的单选按钮的直接祖先。您需要将其更改为:

$(this).closest(".row").find(".dark")

由于您在ajax调用的成功函数中使用此值,因此无法直接使用关键字,但您必须在使用后保存该值。

您可以考虑使用更改事件,而不是点击事件。

一个例子:

$(':radio').on('change', function(e) {
    var row = $(this).closest(".row").find(".dark");
    var a = $.getJSON('https://api.github.com/repositories?since=364', function(data, textStatus, jqXHR ) {
        row.css('color', 'green');
    })
})
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>



<div class="row">
    <div class="col-sm-3 dark">Gender</div>
    <div style="" class="col-sm-3"><input type="radio" name="gender" value="m"> Male</div>
    <div class="col-sm-3"><input type="radio" name="gender" value="f"> Female</div>
    <div class="col-sm-3"></div>
</div>