2017-09-20 3 views
0

Ich habe eine Indexseite, die eine Liste der veröffentlichten Beiträge anzeigt, die Inhalte aus der Datenbank gezogen. Beiträge werden mithilfe des Klassenattributs formatiert.Javascript Auswahl eines bestimmten Elements aus repetitivem Element Klasse

Mit Javascript/jQuery möchte ich das Aussehen des Blocks, in dem jeder Beitrag angezeigt wird, ändern. Ich kann das ohne irgendwelche Schwierigkeiten tun, wenn die auslösende Aktion eine ist, die direkt einem bestimmten Beitrag entspricht, zum Beispiel eine Klickaktion (dann kann ich 'diesen' Selektor verwenden, um auf die Klasse eines bestimmten Beitrags zu zielen). Aber wie gehe ich etwas Ähnliches an, aber wenn die Aktion nicht auf einen bestimmten Beitrag bezogen ist? Wie die Größe des Bildschirms ändern.

if($(window).width() <= 650) { 
    $('.postBtn').appendTo('.smallScreenFooter'); 
} 

Dieser Code Ergebnisse mehr .postBtn ‚s zu jedem .smallScreenFooter auf der Seite in jeder Post angehängt in Atomen (die Zahl der Tasten pro Single Post ist auf die Anzahl von Stellen auf einer Seite angezeigt gleich).

+0

Ich lese, was Sie geschrieben haben, aber immer noch nicht vollständig verstehen, was das beabsichtigte Verhalten sein soll? Hochrechnen? Bearbeiten, wie etwas erscheint und Hinzufügen von Schaltflächen ist unterschiedliche Dinge – Dellirium

+0

Bitte zitieren Sie die HTML-Struktur. –

+0

ist die Absicht, dass Sie für jeden Block die Post-Schaltfläche von THAT BLOCK an den kleinen Bildschirmfuß von THAT BLOCK anhängen möchten? Wenn ja, müssen Sie eine Schleife erstellen. –

Antwort

1

Aber wie gehe ich etwas ähnliches, aber wenn die Aktion nicht auf einen bestimmten Beitrag bezogen ist?

Durch die Verwendung von each:

if($(window).width() <= 650) { 
    $('.post'/*or whatever the container's class is*/).each(function() { 
     var post = $(this); 
     post.find('.smallScreenFooter').append(post.find('.postBtn')); 
    }); 
} 

Das heißt, diese spezifischen Anwendungsfall wäre wahrscheinlich mit CSS-Medienanfragen und zwei Tasten per Post abgewickelt besser werden, wobei der CSS versteckt ein oder der andere hängt von der Bildschirmgröße ab.

+1

Ich dachte über die erwähnte CSS-Lösung nach, aber ich dachte, dass das Duplizieren dieses Elements übermäßig wäre und es mit js zu tun wäre eleganter. Vielleicht hatte ich unrecht. Wie auch immer, danke für deine Antwort - genau das habe ich gesucht. – manjii

Verwandte Themen