javascript - .is (":visible") 找到后

标签 javascript jquery

我在检测复选框的可见性状态时遇到问题,需要您的帮助。

我有一个动态加载的页面部分,如下所示:

<div id="box">

   <div class="colored">
   <input type="checkbox" value="f01" name="mycheckbox">
   <!-- some content -->
   <div>

   <div class="colored">
   <input type="checkbox" value="f02" name="mycheckbox">
   <!-- some content -->
   <div>

  <!-- .... -->


</div>

我们可以说,这代表了某个画廊中的项目。每个 class="colored"div 都可以是可见的或隐藏的。 可以说,这是一个简单的过滤器,就像我只想让 class="colored Yellow"div 可见

现在问题的核心是: 我需要循环遍历整个 BOX 元素,找到所有复选框,并通过每个复选框“问他”,如果它可见,如果为真,请检查他。

不幸的是,这不起作用:

function checkallfav() {
    $("#box").find('input[type=checkbox]').each(function () {
        if (this.is(":visible")) {
            this.checked = true;
        }
    });
}

//And this doesn't work as well
function checkallfav() {
    $("#box").find('input[type=checkbox]').is(":visible").each(function () {
        this.checked = true;
    });
}

问题是,FIND 函数返回整个元素,我尝试过 控制台.调试(这个);在 firebug 中,响应都是 html 元素

请问有人有解决办法吗?

最佳答案

使用:visible复选框本身的选择器。在选择器上使用 :visible 将仅过滤掉可见元素,然后 prop 可以直接在这些复选框上使用。

$("#box").find('input[type=checkbox]:visible').prop('checked', true);

代码也可以缩短为

$('#box :checkbox:visible').prop('checked', true);

关于javascript - .is (":visible") 找到后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33145125/

相关文章:

javascript 在音频中添加 onend 事件

javascript - 检查经过身份验证的用户是否具有 role=admin 并阻止访问状态 ui-router

javascript - 如何在 iphone/ipad 或其他移动设备上禁用某个 javascript?

javascript - 序列化可观察的下一个函数调用

java - 如何从 JSON 转换为 JSONP?

javascript - NIC 和用户名验证字段

javascript - 如何在字体加载后或回流时触发均衡器?

javascript - 设置 TextNode 样式

c# - 经过身份验证的调用

jquery - SmoothScroll 不适用于表格导航