2016-07-06 6 views
4

Also ich möchte den Wert von "verschachtelt" von "Toplevel" bekommen und subtrahiere es von "total". Ich bin mir sicher, dass mein Code mega ineffizient ist, verzeih mir.Setzen von var auf verschachtelte HTML-Elemente Textwert

HTML:

<span class="toplevel"> 
    Clickable 
    <span class="nested"> 50 </span> 
</span> <br> 

All put together is... 
<div id="total"> 
    9999 
</div> 

JS:

$(document).ready(function() { 
    var totalcp = parseInt("9999", 10); 
    $('#total').text(totalcp).toString(); 
    $('.toplevel').click(function() { 
     var cpcost = ('.nested'); 
    totalcp = totalcp - cpcost; 
    $('#total').text(totalcp).toString(); 
    }); 
}); 

Mein Hauptproblem ist die Zeile:

var cpcost = ('.nested'); 

Ich weiß, ich bin fehlt nur etwas dumm !!!! Danke im Voraus.

Codepen link - von der obigen Kombination ist das Problem wiederum, dass var cpcost nicht den "verschachtelten" Wert erhält. Wenn es durch eine flache Zahl ersetzt wird, funktioniert es gut.

+0

Oh lieber Gott, ich meine eigene Frage beantwortet nur diese Zeile Bearbeitung und fügte hinzu:.
'var cpcost = $ ('verschachtelt') Text();'
'parseInt (cpcost, 10);'
Wenn es jedoch mehrere Objekte mit der Klasse 'Toplevel' gibt, wie kann ich ein "this" hinzufügen oder diese Variable cpcost zu sagen, aber ich bin sicher, mein Code ist höllisch ineffizient, so dass jede Beratung im Allgemeinen wäre nett. – ffxivguild

+0

Oh gut ... Ich habe gerade angefangen, ein paar graue Haare über diesen Code zu bekommen – devnull69

+0

Ich kann den obigen Kommentar nicht richtig formatieren, ich entschuldige mich reichlich für den Melaninverlust in deinen Haaren! Ich bin seit einiger Zeit nicht mehr mit dem Programmieren beschäftigt, wie Sie vielleicht sehen werden (15 Jahre ...), und das ist mein allererstes Stück echten Codes seit einer Weile, bloß mit mir! Jeder Rat wird geschätzt. Ich vermute, mein nächster Punkt der Verwirrung wäre innerhalb mehrerer Fälle einer "Toplevel" -Klasse, wie erkläre ich diese Variable, um die "verschachtelte" innerhalb von "THIS" zu verwenden ... – ffxivguild

Antwort

3

Sie haben vergessen $ im folgenden Code hinzuzufügen:

var cpcost = ('.nested'); 

ersetzen, die mit dem folgenden Code funktionieren sollte:

var cpcost =parseInt($(this).find('.nested').text()); 

Um .nested im aktuellen geklickt Spanne zu finden (.toplevel), können Sie einfach $(this) verwenden. Dadurch begrenzen Sie die Abfrage auf das angeklickte Element. Um ein bestimmtes Element einfach zu finden, können Sie auch die Funktion find in jQuery verwenden.

+1

Danke ... Ich habe meine Dummheit gefunden ein paar Minuten nach dem Posten. Aber meine Follow-up-Frage wurde von deinem Code beantwortet (sag ihm, dass er "dieses" sehen soll und wie man "findet" ... Danke. – ffxivguild

+0

@ffxivguild Ich habe meine Antwort bearbeitet :) –