我有一些这样的 HTML(是的,这有点奇怪,但它是一个现有的项目):
<table>
<tr id="21.30---22.00">
<td class='51'>Text</td>
</tr>
</table>
还有一些像这样的JS:
$(document).ready(function(){
var time = "21.30---22.00";
// jQuery needs . to be escaped to \\.
// Regex needs \ to be escaped as \\.
// JS needs \ to be escaped as \\.
time = time.replace(/\./g,'\\\\\\.');
$("tr#" + time + " td.51").css("color","blue");
});
实际上,时间字符串是由一些 JSON 生成的,因此是一种奇怪的方式。
这在以前的 jQuery 版本中有效,但在 1.8 中没有,可能是由于 Sizzle 的变化。这是它不起作用的示例:
jQuery 1.7.2:http: //jsfiddle.net/VnA4m/
jQuery 1.8:http: //jsfiddle.net/VnA4m/1/
关于如何从我time = "21.30---22.00"
的选择器获得适用于 1.8 的选择器的任何想法?