2016-04-07 10 views
11

Ich muss eine CSS-Klasse basierend auf einer Bedingung mit JavaScript hinzufügen, aber das Problem tritt auf, wenn meine Zeichenfolge einen Schrägstrich enthält (/). Dies ist, was mein Anwendungsfall istEscape-Schrägstrich ("/") bei der Verwendung von JavaScript zum Ändern der CSS-Klasse

<div id="div_product-size-icon-121NM/L" class="disabled"></div> 
<script> 
var newProductCode = '121NM/L'; 
if( newProductCode.contains('/')){ 
     newProductCode = newProductCode.replace('/','/\//'); 
     $('#'+'div_product-size-icon-'+newProductCode).addClass('active'); 
    } 
</script> 

ich sogar newProductCode.replace('/','/\'); haben versucht, aber während Code ausgeführt wird, ich bin vor Fehler folgende

JavaScript error: SyntaxError: unterminated string literal

ich nicht HTML zusammen mit Produkt-Code ändern kann; Die Option für mich ist, es in JS zu ändern.

Hier ist ein Beispiel js Arbeits: JS code

+0

Was erwarten Sie nach dem Ersetzen 'newProductCode'? – str

+0

Was genau willst du erreichen ... also gibt es einen Schrägstrich in deinem newProductCode, den du mit ????? Was? – devnull69

+0

@ devnull69: Ich habe ein 'div' und möchte eine Klasse hinzufügen, falls es meine Bedingung erfüllt, falls ich es nicht benutze' $ ('#' + 'div_product-size-icon -' + newProductCode) 'wird Fehler werfen, wenn js Code ausgeführt wird –

Antwort

6

Ich habe zuerst die if-Anweisung mit indexOf() ersetzt und verändert die .replace Funktion als .replace('/', '\\/');

var newProductCode = '121NM/L'; 
 
if (newProductCode.indexOf('/') > 0) { 
 
    alert('Once you click OK, the text will disappear!!'); 
 
    newProductCode = newProductCode.replace('/', '\\/'); 
 
    $('#' + 'div_product-size-icon-' + newProductCode).addClass('active'); 
 
}
div.active { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="div_product-size-icon-121NM/L" class="disabled">Some text here</div>

1

@Pugazh wahrscheinlich das hat korrekte Art, es zu tun, aber Sie konnten einfach die string in " durch Searchi isolieren ng mit einem attribute in jQuery. Hier ist ein link zur API-Dokumentation. Es wird vermieden, den Ersetzungsvorgang insgesamt durchzuführen. Es ist ein hacky Weg, es zu tun.

var newProductCode = '121NM/L'; 
$('[id="div_product-size-icon-'+newProductCode+'"]').addClass('active'); 
Verwandte Themen