javascript - 复杂的 CSS 选择器 - 如何要求可见

标签 javascript jquery html css

我正在编写一个 CSS 选择器,到目前为止我一直在努力:

input[placeholder*='mail']

但我想确保它不会找到不可见(即:不可见)元素。

我一直在模式的不同地方尝试 :visible(因为我找不到关于 CSS 选择器词法分析器的好引用,但运气不好:

input[placeholder:visible*='mail']
input:visible[placeholder*='mail']
input[placeholder*='mail']:visible

我该怎么做?谁有关于学习更复杂的选择器格式的良好引用?

最佳答案

:visible 是一个 jQuery 选择器。不是 CSS。

而且你不能在元素的属性上使用它,比如 placeholder.

要检查是否有输入值(这使得占位符“不可见”),您需要使用一些客户端代码。

jQuery 看起来像这样:

$("input[placeholder*='mail']").each(function(){
  if( $(this).val() != "" ){
    // Do something.
    // ...
  }
});



要“过滤掉不可见元素”并仅保留可见元素:

var visible = $("input[placeholder*='mail']:visible").length;
console.log(visible+" elements are visible.");
.hidden{
  display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="one" placeholder="My mail">
<input type="text" id="two" placeholder="Your mail">
<input type="text" id="three" class="hidden" placeholder="Junk mail">
<input type="hidden" id="four" placeholder="Cool mail">

关于javascript - 复杂的 CSS 选择器 - 如何要求可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45362170/

相关文章:

javascript - 根据浏览器显示不同的 html 元素。 HTML5 Safari 自动播放按钮

jquery - Kendo MVVM - 使用 data-show 绑定(bind)布局

javascript - 防止重复提交

html - divs 之间的 Material Design Lite 空白

c++ - 用 C++ 解析 <li> 列表

javascript - HTML 元素的自定义属性

javascript - 用户输入注册然后地理编码到数据库中

HTML5 离线缓存程序化过期

javascript - 在没有 "new"关键字 kosher 的情况下声明 Javascript 对象的方法?

javascript - 创建一个类似的 "to "文本框,显示在许多基于 Web 的电子邮件网站上