[英]Updating class of parent element 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
。
但是我在这里没有运气。 除了从json返回true
和false
之外,控制台中什么都没有发生。
看起来您的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));
this
范围将在ajax调用范围中更改。 您可以设置this
一个变量,并且可以使用如下:
$(document).ready(function() {
$("input[type='checkbox']").click(function(event){
if($(this).is(':checked')){
var domain = $(this).val();
var checkEle = $(this);
$.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
checkEle.parent().parent().addClass("table-success").removeClass("table-default");
}
});
}
});
});
希望对您有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.