更新父元素jQuery的类

时间:2019-03-31 13:35:49

标签: javascript jquery

我正在尝试更新选择器的父CSS类。这是我的代码表

<div class="container">
    <table class="table table-hover">
    <tr class="table-default">
        <td><input type="checkbox" id="driver[0]" value="log.example.com"></td>
        <td>log.example.com</td>
    </tr>
    <tr class="table-default">
        <td><input type="checkbox" id="driver[1]" value="api.example1.com"></td>
        <td>api.example1.com</td>
    </tr>
    <tr class="table-default">
        <td><input type="checkbox" id="driver[2]" value="mail.example.com"></td>
        <td>mail.example.com</td>
    </tr>
    </table>
</div>

这就是我用来检查布尔条件的内容

$(document).ready(function() {
  $("input[type='checkbox']").click(function(event){
    if($(this).is(':checked')){
      var domain = $(this).val();
      //alert(domain);
      $.getJSON('call.php?submit=submit&domain='+domain, function (data) {
        var result = data.is_vuln;
        console.log(result);
        if(result == "true"){
            console.log("line executed"); // Executes
            $(this).parent().parent().addClass("table-success");
        }
      });
    }
  });
});

我正在尝试完成以下操作,如果通过json返回的布尔条件为true,则应将行的类更改为table-success

但是我在这里没有运气。除了truefalse从json返回之外,控制台中什么都没有。

2 个答案:

答案 0 :(得分:3)

好像您的getJSON函数中的this变量已更改范围。尝试将this绑定到$ .getJSON函数中,如下所示:

  $.getJSON('call.php?submit=submit&domain='+domain, function (data) {
    var result = data.is_vuln;
    console.log(result);
    if(result == "true"){
        $(this).parent().parent().addClass("table-success");
    }
  }.bind(this));

答案 1 :(得分:1)

[ [(12,12,12), (13,13,13), (14,14,14), (15,15,15)], [(65,65,65), (66,66,66), (54,54,54), (12,12,12)], [(34,34,34), (77,77,77), (88,88,88), (33,33,33)], [(56,56,56), (0,0,0), (0,0,0), (0,0,0)] ] 范围将在ajax调用范围中更改。您可以将this设置为变量,并可以如下使用它:

this

希望它对您有帮助。