找到position:attribute的元素

时间:2012-03-19 11:41:31

标签: javascript jquery

我会尝试在页面中找到所有“绝对”元素;使用jQuery我虽然它会像

$('[position="absolute"]')

但是在ff 10.0.2我找不到元素......

另外,我无法在http://api.jquery.com/attribute-equals-selector/上运行exaple代码 这种语法有问题吗?

3 个答案:

答案 0 :(得分:18)

您可以使用filter()

$('*').filter(function(){
   var position = $(this).css('position');
   return position === 'absolute';
});

你不能使用属性等于选择器因为因为那个选择器会搜索一个名为position的属性的元素,就像这样绝对

 <div position="absolute">

但在你的情况下,position是一个css属性

答案 1 :(得分:10)

根据Nicola的回答,你也可以extend jQuery's selector engine

$.extend($.expr[':'],{
    absolute: function(el) {
        return $(el).css('position') === 'absolute';
    },
    relative: function (el) {
        return $(el).css('position') === 'relative';
    },
    static: function (el) {
        return $(el).css('position') === 'static';
    },
    fixed: function (el) {
        return $(el).css('position') === 'fixed';
    }
});

然后你可以做这样的事情。

  

$( ':绝对');

     

$( 'div.sidebar:相对');

答案 2 :(得分:0)

试试这个:

$("*[style*='position:absolute']").each (function () {
     alert($(this).html());
});

演示:http://jsfiddle.net/XRRbr/1/

更多信息:http://api.jquery.com/attribute-contains-selector/