|
||||
![]()
@cloned
Danke für Deine Hinweise. Ich hatte den Text "only with functions like document.querySelector(). " auf developer.mozilla.org so interpretiert, dass es nur auf diese spezielle Weise bereits jetzt experimentell nutzbar ist. Aber da habe ich mich wohl getäuscht. Zu "classlist von JS": Am hilfreichsten wäre es, wenn ihr hier funktionierende Beispiele posten würdet. Also HTML-Code plus JS-Code. Und wenn ihr zeigt, welcher Teil des HTML-Codes durch den JS-Code ausgeblendet wird. Ich schaffe es leider nicht aus den JS-Dokumentationen eigene Beispiele zu bauen. Schon an der Umsetzung in Greasemonkey bin ich gescheitert. Wie immer, das ist keine Erwartung, nur eine Bitte. Es geht ja um möglichst universell und leicht anzuwendenden JS-Code als "Nachbildung von Eltern und Vorfahren-Selektoren". Das ist ja das übergeordnete Ziel.
__________________
|
Sponsored Links |
|
|||
![]()
Dafür verwende am einfachsten jQuery, für ein Lokales greasemonkey-skript ist das irrelevant bezüglich Ladezeit etc.
Dann kannst du :has auch verwenden. https://api.jquery.com/has-selector/ Die Funktion von jquery bezüglich :has nachzubauen ist nicht ganz so einfach, da wird mittels Sizzle-Library gearbeitet und anhand der überprüft, ob Elemente vorhanden sind. Am Einfachsten ist, du kopierst einfach den Code von hier https://code.jquery.com/jquery-3.3.1.min.js in dein greasemonkey-Skript (am Beginn) und dann kannst du jquery verwenden. Zu den restlichen Punkten ist alles auf der Seite dokumentiert, bei konkreten Anfragen bin ich gerne bereit zu helfen, aber hier geht es ja um einen generischen Vorfahrenselektor und nicht darum, wie man feststellt, ob ein Element eine Klasse hat. |
Sponsored Links |
|
||||
![]()
Danke erstmal für Deine Hinweise.
Ich habe darauf aufbauend ein Testcase gebaut: https://codepen.io/fermion/pen/QZzGPj Aber mein Skript ist wohl fehlerhaft. Auch als normale Webseite funktioniert das Testcase auch nicht: https://borumat.de/-/js-test-has
__________________
|
|
|||
![]()
Du kannst im JS kein HTML verwenden (also kein <script src="..." > )
Auch machst du den selben Fehler wie beim ersten Skript: Du musst dein JS erst bei ondomready ausführen und nicht sofort. Du öffnest den Link von jquery den ich kopiert habe und drückst command (oder apfel/birne/whatever) a um alles auszuwählen und kopierst das dann am Beginn von dem JS file. Wenn du jQuery verwendest dann kannst du auch nicht einfach jQuery und "normales" JS mischen, du musst auf jquery Objekte auch jquery Befehle anwenden, bzw diese zuerst zu normalen JS-dom-objekten machen. Zum ausblenden kannst du aber auch .hide() von jquery verwenden. Code:
/*HIER COPY-PASTE VON JQUERY CODE*/ $( document ).ready(function() { //JS Grundlagen: Code erst ausführen wenn auch alles da ist. $( 'div:has(> * > p[foo^=lorem])' ).hide(); }); |
|
||||
![]() Aber genau das steht doch auf der von Dir zitierten Seite: https://api.jquery.com/has-selector/ Zitat:
Dies zusammen mit Code:
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> https://borumat.de/-/js-test-has-2 Uff. Zur Bewertung des Verfahrens mit ":has": Haltet ihr es für besser als das zuvor eingesetzte mit "parent.node"?
__________________
|
|
|||
![]() Zitat:
Im HTML darfst du natürlich <script> Tag verwenden (auch wenn dann natürlich die Reihenfolge wichtig ist) Zitat:
Um das ganze weiter auszuführen: Wenn du nur für diese eine Funktion jQuery einbindest ist es auf einer live-Seite ein overkill (Kanonen auf Spatzen und so). Für ein lokales Greasemonkey-Script aber akzeptabel, du wirst keinerlei Geschwindigkeitseinbußen dadurch haben (und nur darum geht es letztendlich) Warum verwendest du eigentlich jQuery Version 1.10 und nicht 3.3.1? |
|
|||
![]() Zitat:
Du hattest ja auch Probleme jQuery bei codepen einzubinden indem du den <script>-Tag einfach in die JS Datei geschrieben hast. Da ist die "Kopieren -> Einfügen" Lösung die, welche am einfachsten zu erklären ist. (Meiner Mama zB würde ich auch sagen sie soll das kopieren und dort einfügen da sie keinerlei Kenntnisse von JS hat. Ja, weit hergeholter Vergleich am Montag morgen aber ich denke du verstehst was ich sagen will.) Wenn du es auch anders inbinden kannst ist es auch super, wirklich einen Unterschied wirst du lokal nicht feststellen. Zitat:
Das haben wir die Anfangs also nicht vorgeschlagen weil es nicht zwingend notwendig ist. Auch hier ein kleiner Hinweis: Lokal wirst du damit keinerlei Probleme haben, da spielt die Ladezeit keine Rolle. Aber bitte sehe davon ab, den * Selektor in einer produktiven Seite zu verwenden, bzw. nur recht spärlich. |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
jQuery: Element beim Scrollen ausblenden | DavidNF | Javascript & Ajax | 2 | 21.09.2011 09:48 |
Element ausblenden, wenn anderes eingeblendet wird | vik.alive | Javascript & Ajax | 13 | 11.05.2009 13:16 |
Liste im IE | StarSt0rm | CSS | 3 | 22.08.2007 20:04 |
element ausblenden, aber klickbar belassen | antiheld2000 | CSS | 4 | 07.05.2007 16:22 |
Element mit Javascript ein- und ausblenden | yellowfox | Javascript & Ajax | 1 | 17.08.2006 16:05 |