[英]How can i loop over an array to get jquery properties?
I have some fields that I want to hide if they are null.我有一些字段,如果它们为空,我想隐藏它们。 I am able to do this with:我能够做到这一点:
if (json[0].incendio_edificio == null) {
$("#dIncendio_edificio").parent().parent().hide();
}
if (json[0].hvct_edificio == null) {
$("#dHvct_edificio").parent().parent().hide();
}
if (json[0].granizo_edificio == null) {
$("#dGranizo_edificio").parent().parent().hide();
}
What I want to do is put the fields inside a matrix and do the conditional inside a loop, like this:我想要做的是将字段放在矩阵中并在循环中执行条件,如下所示:
const campos_poliza = [
[json[0].incendio_edificio, $("#dIncendio_edificio")],
[json[0].hvct_edificio, $("#dHvct_edificio")],
[json[0].granizo_edificio, $("#dGranizo_edificio")],
];
for (var x in campos_poliza){
if (x[0] == null) {
x[1].parent().parent().hide();
}
}
This doesn´t give any errors but it keeps showing null fields.这不会给出任何错误,但它一直显示空字段。 How can I achieve this?我怎样才能做到这一点? The html is: html是:
<div class="row">
<div class="col s3">
<span class="text-bold text-blue">Incendio Edificio:</span>
</div>
<div class="col s9">
<span id="dIncendio_edificio"></span>
</div>
</div>
<div class="row">
<div class="col s3">
<span class="text-bold text-blue">HVCT Edificio:</span>
</div>
<div class="col s9">
<span id="dHvct_edificio"></span>
</div>
</div>
<div class="row">
<div class="col s3">
<span class="text-bold text-blue">Granizo Edificio:</span>
</div>
<div class="col s9">
<span id="dGranizo_edificio"></span>
</div>
</div>
When you use for (var x in campos_poliza)
, x
is the index of array, which is 0, 1, 2...当您使用for (var x in campos_poliza)
, x
是数组的索引,即 0, 1, 2 ...
This might be what you need:这可能是您需要的:
for (var x of campos_poliza) {
if (x[0] == null) {
x[1].parent().parent().hide();
}
}
Or或者
campos_poliza.forEach(x => {
if (x[0] == null) {
x[1].parent().parent().hide();
}
});
Why not toggle if existing如果存在,为什么不切换
const obj = [{ incendio_edificio:null, hvct_edificio : "not null", granizo_edificio : null }] Object.entries(obj[0]).forEach(([key,val]) => { const sel = `#d${key.slice(0,1).toUpperCase()}${key.slice(1)}`; console.log(key,val,sel) const $elem = $(sel) if ($elem) $elem.closest(".row").toggle(val!=null) })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <div class="row"> <div class="col s3"> <span class="text-bold text-blue">Incendio Edificio:</span> </div> <div class="col s9"> <span id="dIncendio_edificio"></span> </div> </div> <div class="row"> <div class="col s3"> <span class="text-bold text-blue">HVCT Edificio:</span> </div> <div class="col s9"> <span id="dHvct_edificio"></span> </div> </div> <div class="row"> <div class="col s3"> <span class="text-bold text-blue">Granizo Edificio:</span> </div> <div class="col s9"> <span id="dGranizo_edificio"></span> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.