2016-04-07 14 views
11

Tôi cần thêm một số lớp CSS dựa trên một số điều kiện sử dụng JavaScript nhưng gặp vấn đề trong trường hợp chuỗi của tôi có dấu gạch chéo (/). Đây là những gì trường hợp sử dụng của tôi làThoát dấu gạch chéo về phía trước ("/") khi sử dụng JavaScript để thay đổi lớp CSS

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

Tôi thậm chí còn cố gắng newProductCode.replace('/','/\'); nhưng trong khi chạy mã, tôi đang phải đối mặt với lỗi sau

JavaScript error: SyntaxError: unterminated string literal

tôi không thể thay đổi HTML cùng với mã sản phẩm; tùy chọn cho tôi là thay đổi nó trong JS.

Dưới đây là ví dụ một lao động js: JS code

+0

Bạn mong đợi gì 'newProductCode' sau khi thay thế? – str

+0

Chính xác những gì bạn muốn đạt được ... vì vậy có một dấu gạch chéo trong newProductCode của bạn mà bạn muốn thay thế bằng ????? gì? – devnull69

+0

@ devnull69: Tôi có một 'div' và muốn thêm một số lớp trong trường hợp nó đáp ứng điều kiện của tôi, trong trường hợp tôi không sử dụng nó' $ ('#' + 'div_product-size-icon -' + newProductCode) 'sẽ ném lỗi khi mã js sẽ chạy –

Trả lời

6

tôi đã lần đầu tiên thay thế câu lệnh if với indexOf() và thay đổi .replace chức năng như .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 lẽ có đúng cách để làm điều đó, nhưng bạn chỉ có thể cách ly string trong " bởi searchi ng sử dụng một attribute trong jQuery. Dưới đây là link vào tài liệu API. Nó tránh phải làm thay thế hoàn toàn. Đó là một cách hacky để làm điều đó.

var newProductCode = '121NM/L'; 
$('[id="div_product-size-icon-'+newProductCode+'"]').addClass('active'); 
Các vấn đề liên quan