如何检查html元素是否可见(“:visible”)不能按我需要的方式工作

时间:2016-08-01 19:40:28

标签: javascript jquery html qunit

我知道是(“:visible”)如果父母是不可见的,将返回false,所以我知道为什么我写的测试失败了。我的问题是如何解决这个问题。

测试:

QUnit.module("updateLabel", function() {
    QUnit.test("true value", function(assert) {
        var key = "exchangestatus";
        var value = true;
        var element = $("#" + key + "-" + value);
        assert.ok($(element).is(":hidden"), key + "-" + value + " should be hidden before updating");
        MyCompany.updateLabel(key, value);
        assert.ok($(element).is(":visible"), key + "-" + value + " should be visible after updating");
        //THE ABOVE FAILS!
    });
});

html:

这个标签位于一个div中,它位于一个div中,它处于一个div中,它位于div中... html有太多公司特定的东西,所以我省略了它,但这个html是深层嵌套的标签。

<label type="label" value="connected" name="ExchangeStatus" id="exchangestatus-true" class="control-label label-btn-success fusionconnect" style="padding: 8px 12px;">{{si011}}</label>

正在测试的JavaScript:

updateLabel: function(key, value) {
    var selectInput = "#" + key + "-" + value;
    if (value) {
        $(selectInput).show();
        $("#" + key + "-false").hide();
    } else {
        $(selectInput).show();
        $("#" + key + "-true").hide();
    }
}

正如我在第一句中所说,我的断言失败了,因为它的父母不可见。如何检查该特定元素是否已调用.show();不管它是否因为其父母的可见性而实际可见。

0 个答案:

没有答案