2013-02-12 93 views
0

我不熟悉js或jquery,但我需要完成我的「工作」。 我想隱藏父div 氣泡如果值的說,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的lenght我曾嘗試這個代碼(我只是改編)但顯然它不起作用。無論它的內容如何,​​泡泡總是顯示出來。

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

jsfiddle

預先感謝任何(工作)的解決方案。

+0

難道不是'$(「。speach」)。text()'?的長度嗎? – 2013-02-12 22:26:56

回答

0

CC_STATUS不是氣泡類元素的屬性,因此您不能使用attr()。作爲.bubble的孩子,'speach'班是否可靠?

如果是這樣,嘗試這樣的事情:

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

換言之,泡沫的foreach,發現其子歸「speach」,如果空的,隱藏的泡沫。

希望能讓你走上正軌。

1

首先,你忘了加載jquery。其次,你沒有得到正確的jquery遍歷 - 你正在看泡沫的內容,而不是語言的內容。那裏還有一個不需要的.parent。

這裏的解決方案:

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

http://jsfiddle.net/v2Les/

編輯:除了是$(本).attr位是完全沒有必要的,現在我需要它仔細看看。

0

我目前看到的答案中唯一的問題是空格不是空字符串。

var re = /\w/; 
var s = $(".speach").text(); 
var result = re.test(s); 
console.log(result) // false if non-whitespace characters exist