在 XHTML 代码标签(如 DIV 等)的类 class 中包含多个值时如果以 tab 跳格符分隔虽然在 css 中可以被正确识别但将可能导致 jQuery 的选择器失效。发现这个问题是在制作 Drupal 的节点模板中根据条件为 div 添加额外的 class 时发现的。
XHTML 代码:
... ... ... ...
jQuery 代码:
jQuery(".node .node-list").removeClass("node-page");
问题说明:如上面提供的两段代码中,如果在上面的 div 属性 class 中的 node node-page node-list 中使用 tab 跳格符分隔,后面 jQuery 代码中的选择器将无效,如果使用 space 空格分隔的话 jQuery 选择器正常,但无论哪种情况都不会影响 css 中的选择器渲染。
当然这种情况是可以理解的,毕竟通常情况下多个 className 中不可能含有 tab 跳格符,当然也是 W3C 不支持的。但如果在 CMS 中由程序生成多个类名时,就不免会有此种情况出现。