2015-05-15 52 views
6

我覺得這個問題有點愚蠢,但由於某種原因,我無法爲我的生活考慮如何去做我想做的事情。如果返回的值是空的,則隱藏一行

我有一個<div class="row">其中有我的領域標籤和領域。

我想完全隱藏這行,如果我的字段的值返回爲空。

HTML(在我的CMS系統持有):

<div id="rollNumber" class="row"> 
    <label class="col-sm-offset-2 col-sm-3 control-label">[!RollNumberLabel]</label> 
    <div class="col-sm-2 form-control-static">[!RollNumber]</div> 
</div> 

查看代碼:

if (newBankdetails.RollNumber != null && newBankdetails.RollNumber != "") 
{ 
    template.Nvc.Add("[!RollNumberLabel]", "Roll number"); 
    template.Nvc.Add("[!RollNumber]", newBankdetails.RollNumber); 
} 

我試圖做:

template.Nvc.Add("[!RollNumberLabel]", ""); 
template.Nvc.Add("[!RollNumber]", ""); 

但是這會增加空白在上面的行和belo之間這一行。

對於任何建議,無論是JavaScript,JQuery,CSS還是可以完成的使用HTML(儘管我不認爲可以這樣做)。

我無法將任何代碼添加到我的CMS,因此需要在我的代碼中完成。

我的網站使用Twitter的引導

回答

2

您可以測試標籤的文本爲空。

$(function() { 
    $(".row").each(function() { 
     if ($("label", this).text() == "") { 
      $(this).hide(); 
     } 
    }); 
}); 

工作演示:http://jsfiddle.net/m7nytbw4/

+0

雖然我決定把我的字段標籤放回到我的CMS,所以爲了減少我的代碼的一行,並將「標籤」更改爲「div」並添加替換= =「」與== [!RollNumber] – murday1983

0

使用CSS顯示樣式屬性隱藏的行。

$("#rollNumber").css("display", "none"); 
+0

你能給我一個這樣的例子嗎 – murday1983

0

我不知道如果這是你的問題一個矯枉過正的解決方案,但與jQuery和正則表達式,你可以做這樣的事情:

$('.row').each(function(){ 
    var row = $(this); 
    if(! /^[a-zA-Z0-9]+$/.test(row.find('label'))){ 
    // No alphabetical characters found 
    row.css('display','none'); 
    } 
}); 
2

我已經創建了一個例子給你http://jsfiddle.net/gon250/x8m6jLLo/

$(".row").each(function(){ 
    var $row = $(this); 
    var $childern = $row.children(); 
    if($childern.length > 1) { 
    if($childern[0].innerText === "" && $childern[1].innerText === "") { 
      $row.hide(); 
     } 
    } 
}); 

基本上我在做什麼是檢查行的所有的孩子,如果兩個都空隱藏行。

希望它有幫助!

+0

@ murday1983看看這個例子,我認爲你在找什麼。還要注意行的id,你不能重複每行的id。 ''rollNumber'' – gon250

相關問題