Ich versuche, den nächsten Elternteil mit einer nicht transparenten Hintergrundfarbe zu finden.finde Eltern-Hintergrundfarbe nicht transparent
Der erste Code funktioniert, es findet die Eltern, aber dort ist die Farbe transparent.
bg = (e.parentsUntil($(this).has().css("background-color"))).css("background-color");
So kämpfe ich mit diesem:
bg = (e.parentsUntil($(this).has().css("background-color") <> 'transparent').css("background-color");
Es ist ein kleines Problem, dass Chrom definiert transparent mit rgba (0,0,0,0), aber dies sollte mit einer oder Aussage möglich sein, sobald die erste Hürde genommen ist.
Sie sollten sich die Dokumentation von ['.parentsUntil()'] (https://api.jquery.com/parentsUntil/) und ['.has()'] (https: // api .jquery.com/hat /) – Andreas
@Andreas Ich tat so ... das ist, warum der erste Code funktioniert ... aber ich bekomme nicht, wie man transparent ausschließt – ratmalwer
'.parentsUntil()' erwartet einen Selektor oder ein Element. '.has()' erwartet einen Selektor oder ein Element, daher gibt '$ (this) .has()' eine leere Menge zurück. '.css (" background-color ")' ausgeführt auf einer leeren Menge wird 'undefined' zurückgeben. Du nennst also 'e.parentsUntil (undefined)', das alle seine Eltern zurückgibt bis einschließlich ' '([fiddle] (https://jsfiddle.net/tf5e0und/)) – Andreas