Скрыть строку, если возвращаемое значение пусто
Я чувствую себя немного глупо, задавая этот вопрос, но по какой-то причине я не могу думать о том, как делать то, что я хочу.
у меня есть <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]", "");
но это добавляет пробел между строкой выше и ниже этой строки.
Я готов к любым предложениям, будь то JavaScript, JQuery, CSS или если это можно сделать, используя HTML (хотя я не думаю, что это можно сделать таким образом).
Я не могу добавить код в свою CMS, поэтому это нужно сделать в моем коде.
мой сайт использует Twitter Bootstrap
4 ответов
вы можете проверить, является ли текст метки пустым или нет.
$(function() {
$(".row").each(function() {
if ($("label", this).text() == "" ) {
$(this).hide();
}
});
});
рабочая демо: http://jsfiddle.net/m7nytbw4/
Я создал для вас пример 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();
}
}
});
в основном то, что я делаю, это проверить все дочерние элементы строк, и если оба пусты, скрыть строку.
надеюсь, это поможет!
используйте свойство стиля отображения CSS, чтобы скрыть строку.
$("#rollNumber").css("display", "none");
Я не уверен, что это излишнее решение для вашей проблемы, но с jQuery и regex вы можете сделать что-то вроде этого:
$('.row').each(function(){
var row = $(this);
if(! /^[a-zA-Z0-9]+$/.test(row.find('label'))){
// No alphabetical characters found
row.css('display','none');
}
});