Если бы вы делали это с регулярным выражением, выражение было бы просто:
item-\d-top
Где \d
обозначает любую одну цифру (0..9), а другие символы не имеют специального значения (поэтому рассматриваются как литералы).
Тем не менее, в jQuery в настоящее время нет фильтра регулярных выражений (только такие вещи, как start / end / содержит / etc) - поэтому вам придется создать свой собственный (что возможно, но если вы считаете, что вам следует прекратить и подумайте, что / почему вы фильтруете, и выясните, есть ли лучший способ сначала).
Намного проще было бы создать класс (как подсказывает serg555 ) , поскольку именно так вы относитесь к этим элементам.
Или (если вы не можете изменить разметку для добавления класса), затем используйте существующие фильтры, расширяя ответ g.d.d.c , я мог бы сделать:
$('div[id^=item-][id$=-top]').hide()
(Поскольку у вас может быть несколько элементов, оканчивающихся на 'top', либо сейчас, либо в будущем, вам нужно быть более конкретным, чтобы избежать непреднамеренного сокрытия других вещей.)