Как я могу использовать знак фунта (£) в селекторе содержимого? - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь скрыть все выбранные опции, которые содержат £ 0,00, но знак £ не проходит должным образом. Есть ли способ использовать это в селекторе?

Я пробовал несколько способов передать знак фунта, но ни один из них не работает (установка в качестве переменной, использование Unicode и т. Д.)

Это то, что у меня есть в исходном коде:

$('option:contains(£0.00)').hide();

Это то, что отображается, когда я захожу в «просмотр источника»:

$('select option:contains(£0.00)').remove();

Ответы [ 3 ]

0 голосов
/ 30 сентября 2019

Вам нужно использовать кавычки в Содержит и Удалить, это будет работать, только если строка соответствует точно:

$('select option:contains("£0.00")').remove();
0 голосов
/ 30 сентября 2019

Оказывается, это была проблема с кодировкой. Notepad ++ был установлен в UTF-8, но когда я взял код из Notepad ++, вставил его в фактический текстовый файл Windows Notepad, затем сохранил его - он кодировался правильно, и странный символ, предшествующий знаку £, исчез.

Спасибо @phuzi за указатели!

0 голосов
/ 30 сентября 2019

Вы можете зациклить свой вариант и проверить, равен ли текст = £ 0,00

$('option').each(function(){
    if($(this).text() == '£0.00'){
        $(this).hide();
    }
})

, это должно работать.

проверить в HTML, если ваш знак фунта напечатан htmlentities или другим,Ваш селектор может быть неудачным https://www.toptal.com/designers/htmlarrows/currency/pound-sign/

, если «0,00» не единственный текст, содержащийся в вашем опционном узле, вы можете использовать indexOf, чтобы проверить, содержит ли строка другой

, поэтому верхний кодпревращается в это

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option>£0.00</option>
<option>Some text £0.00</option>
<option>£23.00</option>
<option>£1.00 some other text</option>
<option>£0.00 some other text</option>
</select>
<script>
 jQuery('option').each(function(){
            // if ($(this).text().includes('£0.00')){.....
            // or
            console.log($(this).text())
            console.log($(this).text().indexOf('£0.00'))
            if($(this).text().indexOf('£0.00') > -1){
                //$(this).hide()
                $(this).css({background: 'red'});
            }
        })
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...