2016-07-25 6 views
0

Ich habe dieses Bestellformular, das ich mache. Gerade jetzt, wenn jemand einen Gutschein-Code, den ich auf den div des alten Preises einen Stil oder eine Klasse (line-through) anwenden möchte, und ich obwohl ich hatte es richtig ... hier ist, was ich tue .... .irgendein Vorschlag, warum es vielleicht nicht funktioniert? WARNUNG: Ich bin wirklich neu in Javascript .... Ich habe mit CSS HTML gearbeitet, aber Javascript ist eine andere Geschichte. Vielen Dank!Hinzufügen Klasse oder Stil, wenn Text in Div erscheint

if ($('#grand_amount_value').length > 1){ 
    $("#Total_Amount_old_val").attr("style", "text-decoration:line-through"); 
} 
+0

'if ($ ('# grand_amount_value'). Länge> 1)'. Möchten Sie wirklich überprüfen, ob diese Länge größer als 1 ist? Normalerweise sollten Sie prüfen, ob dieses Element existiert, was bedeutet, dass die Länge 1 ist, nicht größer als 1. –

+0

Versuchen Sie 'if ($ ('# grand_amount_value'). Length) { $ (" # Total_Amount_old_val "). Attr ("style", "text-decoration: line-through"); } ' –

+0

Danke. Funktioniert immer noch nicht ... Ich weiß wirklich nicht, was falsch sein kann, um ehrlich zu sein. :/ – Jomcot

Antwort

0

Hier ist ein Beispiel, das ich zusammen etwas wie das Arbeiten zu zeigen, warf:

https://jsfiddle.net/pj6xwhcy/3/

function strikeOldAmt() { 
    var gav = $("#grand_amount_value"); 
    if (gav.length > 0 && gav.text() != ""){ 
     // There is a GAV element and it is not empty, strike out the old amount! 
     $("#Total_Amount_old_val").css("text-decoration", "line-through"); 
    } 
} 

Hinweis: Mit dem Attribut „style“ würde auch jede andere individuelle Styling auszulöschen Sie hinzugefügt haben. Die Verwendung der css() Funktion stört nicht, wenn das style Attribut bereits gesetzt ist.

+0

Das ist genau das, was ich will! DANKE! – Jomcot

+0

Ich bin froh, dass ich helfen konnte – Jim

0

Angenommen, die Seite wird nicht neu geladen, können Sie mit setInterval überprüfen, ob das Element existiert.

var checkInterval = setInterval(function(){ 
if ($('#grand_amount_value').length){ 
    $("#Total_Amount_old_val").attr("style", "text-decoration:line-through"); 
    clearInterval(checkInterval); 
} 
},200); 
+0

Dies gilt für den Stil ... aber auch wenn es keinen Wert auf grand_amount_value obwohl ... seltsam. – Jomcot

+0

Ersetze die "if" -Anweisung durch 'if ($ ('# grand_amount_value'). Val(). Length! = 0) {' und das wird nach 1) überprüfen, dass #grand_total_value existiert und 2) dass sein Wert nicht gleich ist null –

0

Simplest saubere Art und Weise

$(document).on('change','#grand_amount_value',function(){ 
    if ($('#grand_amount_value').val().length != 0){ 
    $('#Total_Amount_old_val').css('text-decoration','line-through'); 
    } 
}); 

oder wenn Sie kontinuierliche Überprüfung

brauchen
$(document).on('keypress','#grand_amount_value',function(){ 
     if ($('#grand_amount_value').val().length != 0){ 
     $('#Total_Amount_old_val').css('text-decoration','line-through'); 
     } 
    }); 

Here a jsfiddle

+0

Danke an alle !!! Ich werde damit durcharbeiten! – Jomcot

Verwandte Themen