Original: http://labs.cloudream.name/jquery/~=selector.html jQuery treat ~= as *= in selector.js line 347 (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) Modify: http://labs.cloudream.name/jquery/~=selector2.html type == "*=" && z.indexOf(m[5]) >= 0 || type == "~=" && (' '+z+' ').indexOf(' '+m[5]+' ') >= 0) I know its design for this, but i think it's useful to part. (is ~= a stupid, stupid, worthless selector? what about |= for other language users? such as [hreflang|=zh] for zh-cn/zh-tw ?)