Если вы выбираете данные из API, рассмотрите возможность использования FutureBuilder .
var match = jQuery.url.attr('anchor').match(/^question([0-9]+)$/);
if (match && match.length > 0) {
$('#answer' + match[1] ).show();
}
Обновлено.
Вы также можете сделать это в одной строке для такого кода.
$('#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