jQuery, затем еще используя плагин синтаксического анализатора URL, должен быть более изящным решением

Если вы выбираете данные из API, рассмотрите возможность использования FutureBuilder .

5
задан Shiladitya 23 March 2019 в 03:25
поделиться

2 ответа

var match = jQuery.url.attr('anchor').match(/^question([0-9]+)$/);
if (match && match.length > 0) {
    $('#answer' + match[1] ).show();
}

Обновлено.

10
ответ дан 13 December 2019 в 19:35
поделиться

Вы также можете сделать это в одной строке для такого кода.

$('#answer' + $.url.attr('anchor').match(/question(\d+)|(.*)/)[1]).show();

Теперь этот метод может потребовать некоторого объяснения. По сути, здесь вы пытаетесь найти строку, содержащую вопрос (n), где где 'question (n)' - первое совпадение, а (n) - второе совпадение. Теперь, если это не найдено, то « | (. *) » говорит «ИЛИ что угодно», и, поскольку оно заключено в (), то *. Что угодно - это первое совпадение и второе совпадение.

При удачном совпадении вы звоните

$('answer' + '1').show();

При неудачном совпадении вы звоните

$('answer' + '').show();  // where $('answer' + '').length == 0

, который ничего не делает.

, если вы хотите, чтобы регистр не учитывался, используйте это как регулярное выражение.

/question(\d+)|(.*)/i
1
ответ дан 13 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: