13 Stimmen

Elemente mit dem Attribut position:finden

Ich würde versuchen, alle "absolute" Elemente in meiner Seite zu finden; mit jQuery dachte ich, es wäre etwas wie

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

aber unter ff 10.0.2 kann ich kein Element finden...

Außerdem kann ich den Beispielcode nicht auf http://api.jquery.com/attribute-equals-selector/ Ist etwas an dieser Syntax falsch?

19voto

Nicola Peluchetti Punkte 74314

Sie könnten verwenden filter()

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

Sie können den Selektor "Attribut gleich" nicht verwenden, da dieser Selektor Elemente mit einem Attribut namens "Position" suchen würde, das gleich "absolut" ist, wie hier

 <div position="absolute">

aber in Ihrem Fall ist Position eine css-Eigenschaft

11voto

Patrick McElhaney Punkte 55251

Aufbauend auf der Antwort von Nicola können Sie auch die Selektor-Engine von jQuery erweitern .

$.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';
    }
});

Dann können Sie Dinge wie diese tun.

$(':absolute');

$('div.sidebar:relative');

1voto

codef0rmer Punkte 10169

Versuchen Sie dies:

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

Demo : http://jsfiddle.net/XRRbr/1/

Mehr Informationen: http://api.jquery.com/attribute-contains-selector/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X