Невозможно сопоставить оператор if, где в строке находится амперсанд

0

Я пытаюсь сделать выражение if:

if($('.subscription-type').html() == "Full Online & Print Access") {
        console.log("inside full");
        //if($('.subscription-type').html() == "Full Online & Print Access") {

и он никогда не переходит в утверждение if. Когда я делаю распечатку в консоли типа подписки, я получаю следующее:

Subscription type:Full Online & Print Access 

Кажется, что проблема - амперсанд. Как я могу исправить свой код?

  • 3
    Проверьте еще раз, чтобы убедиться, что ваш амперсанд на самом деле не экранирован как HTML-сущность как &
Теги:

1 ответ

5

& на самом деле является особым символом в HTML. Он знаменует начало HTML-объекта. Таким образом, чтобы создать литерал & вы должны использовать & в HTML, и что .html вернется.

Чтобы получить текст без объектов HTML (как вы его видите), используйте .text вместо .html:

if($('.subscription-type').text() === "Full Online & Print Access") {

Возможно также, что у вас есть ведущие и/или завершающие пробельные символы. В этом случае вы также хотите применить $.trim к возвращаемому значению.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню