Выключение косой черты ( "/" ) при использовании 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-код
Ответы
Ответ 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');