2 Stimmen

JQuery, hat das Element Stil

Wie kann ich mit jQuery sagen, 'Hat ein Kind von #parent den Stil="width"'.

Ich kenne den Anfang...

jQuery('#parent').children();

Aber ich weiß nicht, wie man 'hat den Stil 'width'' schreibt.

EDIT

Im HTML steht im div style="width=xxx". Ich möchte das erste Vorkommen dieser Breite finden und diesem div einen Rand hinzufügen: 0 auto;. Es geht darum, Videos zu zentrieren.

Einige der divs, die den Stil "width" angeben, sind 3 Ebenen vom oberen Element verschachtelt. Das sollte trotzdem mit .children() funktionieren, richtig?

Aus irgendeinem Grund kann ich keinen der folgenden Codes zum Laufen bringen...

3voto

mu is too short Punkte 411765

Sie müssen einen "Attribut enthält" Selektor verwenden:

Beschreibung: Selektiert Elemente, die das angegebene Attribut mit einem Wert enthalten, der einen bestimmten Teilstring enthält.

jQuery('#parent [style*="width:"]')

Dadurch erhalten Sie die Kinder von #parent, die den String width: in ihrem style-Attribut haben.

Beispiel: http://jsfiddle.net/ambiguous/vpdGa/1/

Wenn Sie sich um border-width und ähnliche CSS-Eigenschaften kümmern müssen, können Sie Ihren regulären Ausdrucksselektor hinzufügen:

jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}

Und dann suchen Sie folgendermaßen:

jQuery('#parent :regex(style,(^|\\s)width:)')

Vergessen Sie nicht den zusätzlichen Backslash, um die Interpretation des Backslashes in der Zeichenfolge zu umgehen.

Und ein Beispiel dieses Ansatzes: http://jsfiddle.net/ambiguous/vpdGa/4/

1voto

Sjoerd Punkte 71416

Versuchen Sie es mit css():

 var width = $(element).css('width')

0voto

kobe Punkte 15289

Sie können das Attribut von jQuery verwenden, das Ihnen sagt, ob es eine Breite hat oder nicht.

http://api.jquery.com/attr/

überprüfen Sie die Länge des Ergebnisses

es sollte funktionieren.

0voto

Tieson T. Punkte 20582

Verwenden Sie die Methode prop(), wie hier zu sehen: http://api.jquery.com/prop/

0voto

gion_13 Punkte 40347
 function checkStyleAttr(elSelector,attr){
    return new RegExp('[^-]'+attr+'[ ]*:').test($(elSelector).attr('style'));
}

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