我正在尝试让这段代码在while循环中工作,而不是if。我需要每个时刻的num_#不显示,如果printLoad_# val是空的。因此,如果printLoad_1值= nothing,则不会显示Num_1,然后printLoad_2将检查其num_2是否为空,依此类推。我遇到的问题是,函数在检查每个部分之前停止。我不确定do-while是否会起作用。
$(document).ready(function() {
if(document.getElementById("printLoad_1").value == "")
{
document.getElementById('num_1').style.display = 'none';
}
if(document.getElementById("printLoad_2").value == "")
{
document.getElementById('num_2').style.display = 'none';
}
if(document.getElementById("printLoad_3").value == "")
{
document.getElementById('num_3').style.display = 'none';
}
if(document.getElementById("printLoad_4").value == "")
{
document.getElementById('num_4').style.display = 'none';
}
if(document.getElementById("printLoad_5").value == "")
{
document.getElementById('num_5').style.display = 'none';
}
});发布于 2013-07-02 07:47:32
你有没有考虑过只合成字符串而不是这种冗长的结构?如下所示:
for( var i=1; i<=5; i++ ) {
if( document.getElementById('printLoad_'+i).value === '' ) {
document.getElementById('num_'+i).style.display = 'none';
}
}发布于 2013-07-02 07:54:36
假设你使用的是jQuery,并且你的元素是有序的,我会忘记ID。如果你使用公共类,比如.printload和.num,那么你可以很容易地通过索引来定位元素,比如:
$('.printload').each(function(i){
if (!this.value) $('.num').eq(i).hide();
});发布于 2013-07-02 07:54:21
如果您有可变数量的printLoad和num:
var i = 1,
pl=document.getElementById('printLoad_'+i),
num = document.getElementById('num_'+i);
while(pl !== null && num !== null){
if(pl.value === ""){
num.style.display = 'none';
}
i++;
pl=document.getElementById('printLoad_'+i),
num = document.getElementById('num_'+i);
}https://stackoverflow.com/questions/17415350
复制相似问题