对文档中的所有元素使用函数

时间:2013-11-04 10:56:22

标签: javascript jquery html css

我已经创建了一个小插件来检查元素是否在位:固定并获得它的高度(如果是)。我想要的是通过我的文档中的所有元素运行此函数来查找所有固定元素并达到它们的高度,但我不知道如何写下来

$.fn.isFixed = function () {
    if ($(this).css('position') === 'fixed'){
        var height = ($(this).height());
        return height;
    }
    else {
        return false;
    };
}

这是我的代码。

3 个答案:

答案 0 :(得分:0)

在这种情况下,您可能必须返回一个数组,因为可以有多个元素。另外要确保维护值索引,如果位置未修复,我将undefined插入数组

$.fn.isFixed = function () {
    var array = [];

    this.each(function(){
        if ($(this).css('position') === 'fixed') {
            array.push($(this).height());
        }else{
            array.push(undefined);
        }
    })

    return array;
}

答案 1 :(得分:0)

var allElements = $("*").contents();

然后在allElements变量上使用.each()函数。

希望这有帮助

答案 2 :(得分:0)

仅在声明的样式表中搜索。

var selectorsArray = [];
for (i in document.styleSheets) {
    for (k in document.styleSheets[i].cssRules) {
        if (document.styleSheets[i].cssRules[k].style.position === "fixed") {
            selectorsArray.push(document.styleSheets[i].cssRules[k].selectorText);
        }
    }
}

所以您可以选择其余的元素:

$('[style~=fixed]').each(function(i,e){});