2016-04-07 4 views
11

JavaScriptを使用していくつかの条件に基づいてCSSクラスを追加する必要がありますが、文字列にスラッシュ(/)これは私のユースケースは、私は製品コードと一緒にHTMLを変更することはできません私もnewProductCode.replace('/','/\');を試してみましたが、コードを実行している間、私は次のようなエラーにJavaScriptを使用してCSSクラスを変更している間スラッシュ( "/")をエスケープする

JavaScript error: SyntaxError: unterminated string literal

に直面しています

<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> 

は何かということです。私の選択肢は、JSで変更することです。ここで

作業JS例です:JS code

+0

置き換えた後、 'newProductCode'はどのようになると思いますか? – str

+0

正確に何を達成したいのですか?あなたの代わりにしたいnewProductCodeにスラッシュがありますか?何? – devnull69

+0

@ devnull69:私は 'div'を持っていて、条件を満たしている場合にクラスを追加したいと思います。' $( '#' + 'div_product-size-icon - ' + newProductCode) ' jsコードが実行されるときにエラーをスローする –

答えて

6

私が最初indexOf()とif文を交換し、おそらく持っている@Pugazh .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

として.replace機能を変更しました正しい方法ですが、stringを検索すると"に隔離することができますjQueryでattributeを使用しています。 APIのドキュメントにはlinkがあります。交換を一切行う必要はありません。それはそれを行うためのハッキーな方法です。

var newProductCode = '121NM/L'; 
$('[id="div_product-size-icon-'+newProductCode+'"]').addClass('active'); 
関連する問題