【发布时间】:2019-03-12 11:31:18
【问题描述】:
我有一个由多个图像组成的滑块,每个图像上都有一个锚元素(被视为一个按钮)。
<div class="slider">
<div class="slide">
//img and extra html
<a class="slider-btn">SOME TEXT HERE</a>
</div>
<div class="slide">
//img and extra html
<a class="slider-btn">SOME TEXT HERE 2</a>
</div>
<div class="slide">
//img and extra html
<a class="slider-btn"></a>
</div>
</div>
没有文本的锚点的位置并不总是确定的,因为用户可以根据需要添加更多幻灯片。
目前一切都按原样显示,但是如果锚标记中没有插入文本,则会显示整个锚。
如何只隐藏没有文字的锚点?
我尝试过类似的方法:
jQuery(document).ready(function(){
if (jQuery('.slider-btn').text() !== 0){
jQuery('.slider-btn').show();
}else{
jQuery('.slider-btn').hide();
}
});
但是这个语句会返回所有按钮中的所有文本,强制显示。
任何帮助我走上正确道路的人都将不胜感激。
【问题讨论】:
-
要隐藏整个 div 吗?没有文字的按钮一开始是不可见的。
-
首先你错过了关闭你的一些课程
<a class="slider-btn>最后错过了",其次你可能只使用jQuery('.slider-btn:empty').hide() -
@CarstenLøvboAndersen 感谢您对缺失引号的提醒。哇,我尝试使用 :empty 并且它完全按照我想要的方式工作。如果您将此作为答案发布,我会将其标记为正确。
-
另外,您可以使用 CSS:
a.slider-btn:empty { display: none; } -
.text()将 never!== 0它可能是!= 0但是当你使用!==它使用类型匹配和.text()是文本而0是一个整数。如果您执行jQuery('.slider-btn').text() !== ""(并循环每个锚点),您的代码会起作用
标签: javascript jquery html anchor