0

我不熟悉 js 或 jquery,但我需要它来完成我的“工作”。如果 custom_field (CC_STAUS) 的值为空,我想隐藏父 div气泡。

下面的代码只是其余部分的一部分:

<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

提前感谢任何(工作)解决方案。

4

3 回答 3

1

首先,您忘记加载 jquery。

其次,您没有完全正确地进行 jquery 遍历 - 您正在查看气泡的内容,而不是语音的内容。您那里还有一个不需要的 .parent。

这是解决方案:

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

http://jsfiddle.net/v2Les/

编辑:除了 $(this).attr 位是完全没有必要的,现在我仔细看看它。

于 2013-02-12T22:29:12.400 回答
0

CC_STATUS 不是气泡类元素的属性,因此不能使用attr(). 作为 .bubble 的孩子,“演讲”类是否可靠?

如果是这样,请尝试以下操作:

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

换句话说,foreach 气泡,找到它的子类“speach”,如果为空,则隐藏气泡。

希望这能让你上路。

于 2013-02-12T22:28:13.500 回答
0

到目前为止,我看到的唯一问题是空格不是空字符串。

var re = /\w/;
var s = $(".speach").text();
var result = re.test(s);
console.log(result) // false if non-whitespace characters exist
于 2013-02-12T22:37:02.037 回答