Подтвердить что ты не робот

Выключение косой черты ( "/" ) при использовании JavaScript для изменения класса CSS

Мне нужно добавить некоторый класс CSS на основе некоторого условия с использованием JavaScript, но сталкиваться с проблемой, если моя строка содержит косую черту (/). Это мой вариант использования

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

Я даже пробовал newProductCode.replace('/','/\');, но при запуске кода я столкнулся с следующей ошибкой

Ошибка JavaScript: SyntaxError: unterminated string literal

Я не могу изменить HTML вместе с кодом продукта; вариант для меня - изменить его в JS.

Вот рабочий пример js: JS-код

4b9b3361

Ответ 1

Я заменил оператор if indexOf() и изменил функцию .replace как .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>

Ответ 2

@Pugazh, вероятно, имеет правильный способ сделать это, но вы можете просто выделить string в ", выполнив поиск с помощью attribute в jQuery. Здесь ссылка в документации API. Это позволяет избежать необходимости полностью заменить. Это хакерский способ сделать это.

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