2016-07-11 6 views
1

Momentan haben Sie diesen Code, und wollen den Text über CSS fett und grün, wenn der Versand frei ist, aber nicht sicher, wo ich mit jQuery falsch liege?jQuery CSS Targeting Daten-Titel

<script> $("td[data-title='Shipping']").contains('Free').css('color', 'green'); </script>

<td data-title="Shipping"> FREE EXPRESS SHIPPING! </td>

<td data-title="Shipping"> $4.99 </td>

Antwort

2

jQuery Instanzen ($() => jQuery instance) haben keine .contains Methode.

$("td[data-title='Shipping']:contains('Free')").css('color', 'green'); 

jQuery Konstruktor hat eine contains Methode, aber es für einen anderen Zweck verwendet wird: Sie sollten die contains as a selector verwenden.

+0

Hmmm .. scheint nicht zu funktionieren? [Klicken Sie hier für die Testseite] (http://www.hardtunedstore.com/test.html) –

+0

@LozGlen Ihr Code wird zu früh ausgeführt. Bewegen Sie entweder das Skript vom Kopf zum Ende des Körperelements oder verwenden Sie die Funktion $() .ready. – undefined

+0

Vielen Dank für Ihre Antworten! Scheint, es auf der Testseite behoben zu werden, aber es scheint Probleme auf der Live-Checkout-Seite zu haben ... Der Warenkorb Bereich ist AJAX gefahren, ich denke, es spielt nicht gut mit AJAX Bereichen des Seite? Irgendwelche empfohlenen Workarounds dort? –

0

versuchen, das Skript in diesem ändern:

<script> 
    $('td[data-title="Shipping"]:contains(Free)').css('color', 'green'); 
</script> 

Above Skript nur Farbe für die erste td nur ändern, die seit dem letzten td nicht Free Text enthält.

, wenn Sie beide ändern möchten, versuchen Sie ändern die tr statt:

<script> 
    $('td[data-title="Shipping"]:contains(Free)').parents('tr').css('color', 'green'); 
</script>