I'm trying to highlight a whole row/column of a TikZ \matrix[matrix of nodes].

Luckily, for TikZ matrix we have row/column selectors. So, in theory, the above should be achieved by the following code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\matrix[matrix of nodes,nodes={draw},row 2/.style={fill=blue!20}] {
a11 & a12 & a13 \\
a21 & a22 & a23 \\
a31 & a32 & a33 \\
};
\end{tikzpicture}
\end{document}
...but that simply doesn't work. Am I missing something? To produce the image above, I had to manually insert a |[fill=blue!20]| before every element of the 2nd row. Defining a style like \tikzstyle{foo}=[fill=blue!20] and setting row 2/.style={foo} doesn't work either. In the same time, using row/column selectors to set foreground color works (simply [blue!20] instead of [fill=blue!20]), as well as setting many other properties like font face & size. Seems like a bug in TikZ? Tested with pdfLaTeX, XeLaTeX and luaLaTex on TeXLive 2011.

nodes=..., then what does the style apply to? Wonder why setting foreground color still works. – Ochkarik Nov 02 '12 at 19:26redkind of option and it's been picked by the text itself too. – percusse Nov 02 '12 at 20:29