Это так просто, я понятия не имею, почему это не работает. Я пытаюсь получить значение переменной CSS с помощью jQuery и сравнить его со строкой того же значения. Сравнение должно вернуть true, хотя это не так. Любая помощь будет оценена.
var themeMode = $(document.body).css('--theme-mode');
console.info(themeMode);
console.info(themeMode == 'dark');:root {
--theme-mode: dark;
}<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>console.info($(document.body).css('--theme-mode') действительно возвращает dark.
Это не дубликат, потому что строка выше возвращает строку. Однако он возвращает false, когда я пытаюсь сравнить строки.
поскольку возвращаемое строковое значение - «темное», попробуйте следующий код alert(themeMode == ' dark');
@AhmedYousif. Браво! Спасибо за вашу помощь. Позор тем, кто пытается пометить его как дубликат, не пытаясь разобраться в проблеме.
@sdvnksv нет, он возвращает undefined, как вы увидите, когда попробуете это в Chrome в редактировании, которое я внес в ваш фрагмент. Как было сказано в моем первом комментарии, jQuery не может надежно извлекать созданные свойства CSS безопасным для всех браузеров способом. Вы нужно, чтобы использовать простой JS, если хотите, чтобы это работало надежно.
@RoryMcCrossan, я использую jQuery 3.3.1, и он отлично работает в Chrome: jsfiddle.net/fwt27b01/1
Тогда почему вы поместили в сниппет jQuery 2.1.1?
@RoryMcCrossan, потому что это последняя версия, доступная в редакторе SO.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


jQuery затрудняет чтение нестандартных свойств CSS. Вместо этого используйте простой JS