2015-05-15 3 views
6

Я чувствую себя немного глупо, задавая этот вопрос, но по какой-то причине я не могу, чтобы жизнь меня задумалась о том, как делать то, что я хочу.Скрыть строку, если значение возвращено пустым

У меня есть <div class="row">, в котором есть полевое поле и поле.

Я хочу полностью скрыть эту строку, если значение моего поля возвращается как пустое.

HTML (Held в моей системе 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]", ""); 

, но это добавляет пустое пространство между строкой выше и бело w эта строка.

Я принимаю во внимание любые предложения, будь то JavaScript, JQuery, CSS или если это можно сделать, используя HTML (хотя я не думаю, что это можно сделать таким образом).

Я не могу добавить код в свою CMS, поэтому это необходимо сделать в моем коде.

Мой сайт использует Twitter Bootstrap

ответ

2

Вы можете проверить, если текст метки пуст или нет ,

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

Работа демо:http://jsfiddle.net/m7nytbw4/

+0

Это сработало отлично, хотя я решил поместить свой полевой ярлык обратно в свою CMS, чтобы уменьшить мой код по строке и сменил «ярлык» на «div» и добавил replace = = "" с == [! 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 взгляните на пример, я думаю, это то, что вы ищете. Также обратите внимание на идентификатор строки, вы не можете повторить идентификатор для каждой строки. '' rollNumber'' – gon250

Смежные вопросы