Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 06:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



QuerySelectorAll.forEach hilfe

Discussion on QuerySelectorAll.forEach hilfe within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 422
Received Thanks: 17
QuerySelectorAll.forEach hilfe

Tag,

ich wollte ein Counter einfügen für jede Box.

Ich habe z.b 5 Beiträge und jeder der Beiträge soll den Counter 0 haben.(Bzw für jedes Form-Feld soll 0 gesetzt werden.)

Ich habe hier mal 2 Beiträge:

form-list-1
Beitrag: Hallo
button

form-list-2
Beitrag: Hi
button

Wenn ich jetzt auf form-list-2 button klicke, soll er den Counter +2 nehmen und speichern. Wenn ich nochmal drauf klicke, ist der Counter ja auf 4. Wenn ich jetzt auf form-list-1 klicke, soll der Counter 2 sein.

Das Problem ist, wie definiere ich die Variable Counter für jedes form-Feld?

Das hab ich gefunden:

Jetzt wollte ich noch eine Function button_click schreiben, der so aussehen sollte:


HTML:

Er sagt mir aber das Counter nicht definiert ist.
Cc_Cc_Cc is offline  
Old 05/11/2018, 10:50   #2


 
iMostLiked's Avatar
 
elite*gold: 1337
Join Date: Apr 2013
Posts: 6,480
Received Thanks: 3,191
Eine Methode, wie du dein Vorhaben umsetzen könntest:

Gib jeder Form noch ein zusätzliches Element (unsichtbares Input-Feld) und speichere dort den Count. Alternativ könntest du es noch mit einem Array lösen, aber die Variante ist wohl "einfacher".

HTML Code:
<form class="box-form">
    <button type="submit" class="btn">Counter</button>
    <input value="0" type="text" hidden>
</form>
Code:
$('.box-form button').click(function(){
    var nVal = parseInt($(this).next().val()) + 2;
    $(this).next().val(nVal);
});
Im Grunde genommen ist es ein Click-Event für jeden Button in einem Element mit der Klasse "box-form". Dort holt sich der Code mithilfe von die Value des Elementes "neben" dem Button und addiert eine Zahl drauf. Anschließend wird die Value im Input-Feld geändert.

PS: Nutz . Erleichtert dir dein Leben um einiges.
PPS: Hab den Code nicht getestet, müsste aber klappen. Das Prinzip sollte auf jeden Fall ersichtlich sein.
iMostLiked is offline  
Old 05/11/2018, 12:44   #3
 
type.'s Avatar
 
elite*gold: 74
Join Date: Aug 2017
Posts: 284
Received Thanks: 151
Wahrscheinlich ist deine Variable 'counter' tatsächlich einfach nicht definiert.
Habe das einfach mal kurz zusammengeworfen; macht doch eigentlich genau das, was es soll, wenn ich dich richtig verstanden habe? M.M.n. gibt es, sofern es lediglich um eine solch simple Aufgabe geht, keinen Grund die komplette jQuery-Lib zu laden. ¯\_(ツ)_/¯

type. is offline  
Old 05/11/2018, 16:18   #4
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 422
Received Thanks: 17
Ich möchte die Variable Counter noch per POST weitergeben.

z.b

SELECT * FROM comments LIMIT $counter;

Das ich dann immer weitere anzeigen kann.

Wenn ich jetzt, wie ihr unten bei "data: .. " sieht, counter einfüge, sagt er mir dass Counter nicht definiert ist. Ich habe nach (document).ready.. den Code von type. geschrieben. Es müsste doch dann schon deklariert sein oder nicht?
Cc_Cc_Cc is offline  
Old 05/11/2018, 16:23   #5


 
iMostLiked's Avatar
 
elite*gold: 1337
Join Date: Apr 2013
Posts: 6,480
Received Thanks: 3,191
Das liegt daran, dass du die Variable "counter" immer noch nicht definiert hast. (zumindest nicht global)
Wie auch immer, du kannst sie sowieso nicht übergeben, da in einer Variable nicht mehrere Werte reinpassen.

Wenn du für Block A einen Count von 44 hast und für Block B einen Count von 66, kann das nicht alles in "counter" addiert/gespeichert werden. (es sei denn du möchtest das)

Du musst dir den Count entweder über das Input-Feld (wenn du mein Beispiel nutzt) oder über das Span-Element (wenn du types Beispiel nutzt) holen.
iMostLiked is offline  
Old 05/11/2018, 18:01   #6
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 422
Received Thanks: 17
Quote:
Originally Posted by iMostLiked View Post
Das liegt daran, dass du die Variable "counter" immer noch nicht definiert hast. (zumindest nicht global)
Wie auch immer, du kannst sie sowieso nicht übergeben, da in einer Variable nicht mehrere Werte reinpassen.

Wenn du für Block A einen Count von 44 hast und für Block B einen Count von 66, kann das nicht alles in "counter" addiert/gespeichert werden. (es sei denn du möchtest das)

Du musst dir den Count entweder über das Input-Feld (wenn du mein Beispiel nutzt) oder über das Span-Element (wenn du types Beispiel nutzt) holen.
Hi,

ich hab es mal so versucht, doch er nimmt es immernoch nicht +2.
Es kommt auch keine Fehlermeldung.
HTML:

Java:
Cc_Cc_Cc is offline  
Old 05/12/2018, 12:10   #7


 
iMostLiked's Avatar
 
elite*gold: 1337
Join Date: Apr 2013
Posts: 6,480
Received Thanks: 3,191
Ja, pass mal auf, du hast da bisschen was verwechselt und doppelt gemoppelt.

Du hast die .find() Funktion falsch genutzt. Wenn du in der Funktion selbst mit einem Punkt anfängst, selektierst du Klassen. (Mit einem Hashtag selektierst du IDs)

Dein
Code:
var change = $(this).find('.counter-'+value+'')
macht also keinen Sinn, da es keine Klasse, sondern ein name-Attribut ist. Selektieren musst du es so:
Code:
$(this).find('input[name="counter counter-'+value+'"]')
Das "input" brauchst du nicht. Kannst es alternativ auch so machen:
Code:
$(this).find('[name="counter counter-'+value+'"]')
Des Weiteren brauchst du das .next() nicht, da du als Haupt-Selektor (this) die Form und nicht den Button hast. Dadurch, dass du dich mit dem Selektor in der Form befindest, kannst du innerhalb dieser Form auf alles zugreifen, ohne .next() oder Ähnliches verwenden zu müssen.

Ansonsten war dein Ansatz ziemlich gut. Ich habe den Code für dich angepasst.
There you go: (Hab's mal in Spoiler gesetzt, falls du es noch selbst ausprobieren möchtest. )


Ach so, setz mal bitte Semikolons ans Ende der Zeilen.

PS: Die <p>-Tags brauchst du gar nicht. Das Input Feld ist sowieso unsichtbar.
iMostLiked is offline  
Thanks
1 User
Old 05/12/2018, 14:34   #8
 
Cc_Cc_Cc's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 422
Received Thanks: 17
Perfekt hat alles geklappt danke dir^^
Cc_Cc_Cc is offline  
Reply


Similar Threads Similar Threads
Problem PHP - Foreach
07/28/2014 - Web Development - 5 Replies
Hi, bin noch ein Newbie was PHP angeht und hab da mal eine Frage. Ich möchte auf ein Array "topicList", welches sich in der Klasse "Topic" befindet, zugreifen. Der Inhalt dieses Array´s "topicList" beinhaltet mehrere Klassenobjekte der Klasse "Content". Nun wollte ich durch eine foreach Schleife auf die Variable "name", welche sich in der Klasse "Content" befindet, zugreifen und den Wert ausgeben. So wird das Array initialisiert: $this->topicList = array();
Explode im Foreach
06/22/2014 - Web Development - 7 Replies
Hi, habe leider wieder ein Problem bei meiner zukünftigen Webseite. Ich möchte eine Userliste die zeilenweise im Format (user:pw) aus einer Textarea an PHP übergeben und schließlich zeilenweise auslesen. Hier mein PHP Code: <?php if (isset ($_POST)) { //Die Textarea nach jeder Zeile trennen und in einem Arrayfeld speichern
Finding a specific name from a list using a Foreach check
10/05/2013 - CO2 Private Server - 8 Replies
I've been working on a new event idea which involves 2 people being paired up and then parts of each char being checked against the other, I have everything working fine apart from 1 of the checks that selects the players opponent from the list by checking the names in the list, It only selects the first person added to the list and then returns a fail rather than checking the whole list and returning the correct match if they are still there, I have checked and players are being added fine and...
Mit Foreach mehrere Daten in MySQL eintragen^
07/12/2012 - Web Development - 4 Replies
Hallöchen community, komme gerade nicht weiter, steh irgendwie aufm Schlauch.. Ich habe folgendes: $xml = @simplexml_load_file($xmllink); foreach($xml->newsitems->newsitem as $news) { $title = $news->title; // Titel der News $url = $news->url; // Link zu den News
Direct a foreach at Char in Map?
04/01/2010 - CO2 Private Server - 8 Replies
I've been working at a hunt quest that teleports chars to a map where they must kill a monster get a key find the treasure box, open it then teleport back to TC. This is what I have but it directs the tele to all characters in game foreach (Game.Character C in Game.World.H_Chars.Values) { Game.World.SendMsgToAll("SYSTEM", "The Treasure has been found. Better luck next time.", 2011, 0); ...



All times are GMT +2. The time now is 06:36.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.