Well you can of course dive into the complex syntax rules, see @Carpetsmoker's answer. However that might not always work correctly, depending on the order of the syntax rules and their priorities. Therefore, for such simple things it is usually better to use matchadd()
function for highlighting special items in addition to the syntax rule.
First define your highlighting group you want to use:
hi htmlTagID ctermbg=blue guifg=blue
call matchadd('htmlTagID', '\<id\>\ze=')
This could be put into a filetype plugin, like ~/.vim/after/ftplugin/html.vim
(create non-existing directories).
For a more complete solution, you would need to store the return value of matchadd, to be able to clear the match later with matchdelete()
.
Note, matching is window-local so if you have the same buffer open in several windows, you might not see the highlighting in every window. For that you would also need to call the highlighting function on a WinEnter autocommand (or similar).