-3

这是我尝试过的

    if($('modal').css(width) > 0)

尝试编写一个简单的 if 语句来检查类“modal”的宽度是否大于 0。

编辑:这写得真的很糟糕,很抱歉。这是我知道我必须做的:

我需要在 DOM 树中使用 .modal 类遍历所有元素,并确保它们的宽度都不大于 0。我想鉴于这种情况,我可以只使用一个 for 循环来设置所有宽度为 0 类 .modal 的任何东西。

知道了!这是有效的:

 $(".modal").width(function(i, w) { return w * 0 });

感谢大家的帮助!

4

1 回答 1

0

您可以使用此代码查找宽度大于 1 的某个组(使用 jquery 选择器,如“.modal”)的项目 ID(为了安全起见,我使用 1 而不是 0)。

作为一个例子,我使用过:

    <div id="a" class="modal">aaaa</div>
    <div id="b" class="modal"></div>
    <div id="c" class="modal">cccc</div>
    <div id="d" class="modal"></div>

.modal {float:left}CSS 中使用(否则所有元素都具有相同的宽度)。您可以使用if(testIfItemsWithWidth(".modal")) {...}来测试至少一个是否存在。

    $(function() {
        if(testIfItemsWithWidth(".modal")) {
            alert("YES");
        }
    })



    function testIfItemsWithWidth(classes) {
        var foundOne=false;
        $(classes).each(function(cnt,itm) {
            if($(this).width()>1) {
                foundOne=true;
            }
        });
        return foundOne;
    }

在这里试试

如果你想做更高级的事情:

    $(function() {
        var items=getItemsWithWidth(".modal");
        for(var i=0;i<items.length;i++) {
            // as an example, display id in dialog and set their border to red
            alert(items[i]);
            $("#"+items[i]).css({"border":"1px solid red"});
        }
    })

    function getItemsWithWidth(classes) {
        var itemList=[];
        $(classes).each(function(cnt,itm) {
            if($(this).width()>1) {
                itemList.push($(this).attr("id"));
            }
        });
        return itemList;
    }

在这里试试

或者更好的是,您可以使用 JQuery 过滤器功能:

    $(function() {
        var $items=$(".modal").filter(function(idx) {
            return ($(this).width()>1);
        }).css({"border":"1px solid red"});
    })

这只是将边框颜色设置为红色作为示例。

在这里试试

于 2013-07-04T09:05:05.583 回答