Frage

Ich versuche, eine Taste zu tun, die auf klicken seine ID und eine Variable erhöht. konnte ich einige Codes auf Stackoverflow finden, die den Wert eines Eingabefeldes erhöht, aber ich weiß nicht, es zu ändern, von dort aus.

Hier ist das Markup:

<input type="text" name="qty" value="0" />
<p id="inc">Increase</p>
<p id="dec">Decrease</p>

Und jQuery

<script>
$(document).ready(function() 
{   
    $(function()
    {
        $("#inc").click(function() 
        { 
            $(":text[name='qty']").val(Number($(":text[name='qty']").val()) + 1);
            $('#inc').addClass (Number + 1); // this one does not work
            var incrementVar = (Number + 1); // this one also does not work
        }); 

        $("#dec").click(function()
        {      
            $(":text[name='qty']").val(Number($(":text[name='qty']").val()) - 1);
        });  
    });
});
</script>

Dies macht das val im Eingangs erhöhen, aber ich kann es nicht die $ zu erhöhen machen ( ‚# inc‘) Klasse und die var incrementVar.

Was soll ich tun? Danke

War es hilfreich?

Lösung

var incrementVar = 0;
$(function() {
    $("#inc").click(function() {
        var value = parseInt($(":text[name='qty']").val()) + 1;
        $(":text[name='qty']").val(value);
        $('#inc').addClass('a' + value); // I believe class names cannot start with a number
        incrementVar = incrementVar + value;
    });
});

Andere Tipps

Klassennamen nicht mit einer Zahl beginnen, diese Diskussion Details siehe . Wenn Sie Ihren Klassenpräfix sagen .c1, .c2, etc ... Sie etwas tun können:

$(function() {
  $("#inc").click(function() { 
    var num = $(":text[name='qty']").val(function(i, v) { 
                   return Number(v) + 1;
              }).val();
    $(this).addClass ('c' + num);
    var incrementVar = num;
  }); 

  $("#dec").click(function() {      
    $(":text[name='qty']").val(function(i, v) { return Number(v) - 1; });
  });  
});

Noch eine Anmerkung:. Nicht nötig $(document).ready(function() { und $(function() { diese gleichwertig sind, Einwickeln in entweder allein in Ordnung

Für weitere Tastatur-Unterstützung (oben / unten Pfeile / subtrahieren hinzufügen) für diesen Eingang, mein Increment Plugin nützlich sein könnte: http://sean-o.com/increment

Einfach herunterladen und das Skript enthält, dann mit einer Zeile Code nennen:

$(":text[name='qty']").increment({ increment: 1 });

- SEAN O

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top