wählen Sie Elemente mit display:block
Dies ist die html-Inhalte, aus denen ich auswählen möchten, alle Elemente im Bericht mit display block mit Hilfe von jQuery
$("#report:visible")
funktioniert bei mir nicht.
<div id="report">
<div id="p1" style="display: block;">
<input id="pname1" type="checkbox" name="report1">
<input id="pname2" type="checkbox" name="report2">
</div>
<div id="p2" style="display: none;">
<input id="pname1" type="checkbox" name="report1">
<input id="pname2" type="checkbox" name="report2">
</div>
<div id="p3" style="display: none;">
<input id="pname1" type="checkbox" name="report1">
<input id="pname2" type="checkbox" name="report2">
</div>
<div id="p4" style="display: block;">
<input id="pname3" type="checkbox" name="report1">
<input id="pname4" type="checkbox" name="report2">
</div>
</div>
Haben Sie müde
Verwenden Sie eine Klasse, um
$('#report').css('display') == 'block';
?Verwenden Sie eine Klasse, um
display: block
wählen Sie dann durch die Klasse.InformationsquelleAutor Abhishek | 2013-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht können Sie dieses Stück von jQuery :
Oder diese 🙂 ?
InformationsquelleAutor Benz
Wird diese Option der direkten Kinder von
#report
sichtbar sind. Ohne den Raum, den Sie ausgewählt haben#report
selbst wenn es sichtbar ist. (Ohne die>
würd es Ziel auch die Eingänge.)>
war jetzt veraltet zugunsten von.children()
. Oder war die Missbilligung aufgehoben?Ich sehe keine Erwähnung von diesem in die Doku (api.jquery.com/child-selector).
Wenn der Missbilligung ist immer noch in Kraft, dann muss es begraben werden, der Weg in einen anderen Teil der Dokumentation, nicht wo es sein sollte.
Mein bad, ein insbesondere von
>
war veraltet und bekommt keine Erwähnung in der Dokumentation. Dein code ist in Ordnung, obwohl ich glaube, ich würde Verwendung$("#report").children("div").is(":visible")
.InformationsquelleAutor JJJ
Den Sie verwenden könnten:
aber ich würde nicht, ich würde hinzufügen einer Klasse als auch an Haken auf.
display: block;
ist direkt zu das element. und nur, wenn nur diedisplay: block;
eingestellt ist ?Yep. Auch, nur, wenn es einen Raum, nicht sicher, ob JS normalisiert ist oder nicht. Dies ist eine schreckliche Art und Weise, es zu tun, eine Klasse besser wäre.
InformationsquelleAutor Rich Bradshaw
Können Sie direkt wählen Sie die Elemente in CSS mit einer Eigenschaft ein Wert an sich. Aber Sie können wählen Sie die Klasse. Die beste Lösung wäre die Verwendung einer Klasse zuordnen
display: block
(wie einvisible
Klasse) und dann wählen Sie basierend auf Ihre Präsenz oder das fehlen davon.Den anderen Weg, dies zu tun ist zu wählen, wobei der gesamte Wert der
style
element. Aber das problem mit diesem ist, dass, wenn Sie andere inline-Stile, die selector funktioniert nicht mehr. Sie könnte dann in regex Parsen von style-Attribut, aber meiner Meinung nach ist die Anwendung einesvisible
oderhidden
Klasse ist viel einfacher und performen deutlich besser.Beachten Sie, dass ein weiterer Vorteil der Verwendung der
visible
oderhidden
Klasse ist, dass Sie können Sie ein-und ausschalten mit JavaScript sehr einfach:Ich nehme an, interpretierte ich die Frage anders. Gegeben, dass der Titel fordert zur Auswahl, wo
display: block
angewendet wird, bin ich davon ausgegangen, die Frage war mehr orientiert sich die Auswahl basiert auf dem Attribut und nicht die Sichtbarkeit. Wenn er ein element ein, das sichtbar war, wodisplay: block
nicht angewendet wurde (vielleicht ein anderesdisplay
Wert, oder gar keine), bin ich davon ausgegangen, dass er das nicht wollen würde, diese zu wählen. In der Tat jQuery:visible
arbeiten würde, wenn das Ziel ist sichtbar, Elemente und nicht die Auswahl von bestimmten Wert.InformationsquelleAutor Levi Botelho
Diese kann Ihnen helfen, mit mehreren Selektoren CSS-Selektoren.
Als für Ihre Anforderung, können Sie dieses auswählen, um alle
div
mitdisplay:block
unter der#report
.display:block
könnte auchdisplay: block
InformationsquelleAutor mbharanidharan88
Warum nicht einfach
wenn markup bleibt so, dass es funktionieren wird. Wenn nicht gerade eine Klasse hinzufügen, um den Bericht Einträge wie 'Eintrag', dann tun
InformationsquelleAutor ahmed.hoban
Sollte dies funktionieren:
* Wählt alle Elemente innerhalb des #Bericht. Sie sind dann zu filtern, um diese mit der CSS-Eigenschaft auf block.
InformationsquelleAutor Chris Smith
Verwenden
:visible
im Ort[style*="display:block"]
wie es funktioniert in allen Browsern einschließlich IE.[style*="display:block"]
wird nicht im IE funktioniert.InformationsquelleAutor Youdhveer