找到position:attribute的元素

Vit*_*lio 13 javascript jquery

我会尝试在页面中找到所有"绝对"元素; 用jQuery我虽然会有类似的东西

$('[position="absolute"]')
Run Code Online (Sandbox Code Playgroud)

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

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

Nic*_*tti 19

你可以用 filter()

$('*').filter(function(){
   var position = $(this).css('position');
   return position === 'absolute';
});
Run Code Online (Sandbox Code Playgroud)

您不能使用属性等于选择器,因为该选择器将使用名为position的属性搜索元素,该属性等于绝对值

 <div position="absolute">
Run Code Online (Sandbox Code Playgroud)

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


Pat*_*ney 10

基于Nicola的答案,您还可以扩展jQuery的选择器引擎.

$.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';
    }
});
Run Code Online (Sandbox Code Playgroud)

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

$( ':绝对');

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