2013-02-12 3 views
0

Я не знаком с js или jquery, но мне нужно, чтобы закончить свою работу. Я хочу скрыть родительский div bubble если значение, скажем, custom_field (CC_STAUS) пуст.Как скрыть родительский div, если custom_field пуст

Ниже код только часть отдыха:

<div class="bubble"> 
    <div class="arrow"></div> 
    <div class="speach" style="width: 100%;"> CC_STATUS 
    </div> 
</div> 

и CSS

.bubble { 
    overflow:hidden; 
    margin:5px 0 0 0; 
} 
.bubble .speach { 
    background-color:#333333; 
    color:#FFFFFF; 
    padding:5px; 
    margin:0; 
    font-size: 12px; 
    font-family: Segoe UI; 
    text-transform: lowercase; 
} 
.bubble .arrow { 
    margin:0 0 0 15px; 
    width:0; 
    height:0; 
    border-left: 0px solid transparent; 
    border-right: 10px solid transparent; 
    border-bottom: 10px solid #333333; 
    border-top: 0; 
} 

Чтобы проверить длину от CC_STATUS Я попробовал этот код (который я просто адаптированный) но, очевидно, это не сработает. Пузырь всегда смещается независимо от его содержания.

$('.bubble').each(function() { 
    if($(this).attr('CC_STATUS') === '' || $(this).text() === '') { 
     $(this).parents('.bubble').hide(); 
    } 
}); 

См jsfiddle

Спасибо заранее для любого решения (рабочий).

+0

Не будет ли длина '$ (". Speach "). Text()'? –

ответ

0

CC_STATUS не является атрибутом элемента класса пузырьков, поэтому вы не можете использовать attr(). Является ли класс «speach» надежным как ребенок .bubble?

Если так, то попробуйте что-то вроде этого:

$('.bubble').each(function() { 
    if('.speach', $(this)).text() === '') { 
     $(this).hide(); 
    } 
} 

Другими словами, Еогеасп пузырь, найти его ребенок классифицирован «гаджи» и если он пуст, скрыть пузырь.

Надеюсь, это поможет вам.

1

Прежде всего, вы забыли загрузить jquery.

Во-вторых, вы не получили ход jquery совершенно прав - вы смотрели на содержимое пузыря, а не на содержимое речи. У вас также был нежелательный.

Вот решение:

$('.bubble').each(function() { 
    if($(this).attr('CC_STATUS') === '' || $(this).find('.speach').text() === '') { 
     $(this).hide(); 
    } 
}); 

http://jsfiddle.net/v2Les/

Edit: Кроме того что $ (это) .attr бит совершенно ненужным, теперь, когда я повнимательнее взглянуть на него.

0

Единственная проблема, которую я вижу с ответами до сих пор, - это пробел, а не пустая строка.

var re = /\w/; 
var s = $(".speach").text(); 
var result = re.test(s); 
console.log(result) // false if non-whitespace characters exist 
Смежные вопросы