【发布时间】:2012-08-13 21:30:17
【问题描述】:
我有一些这样的 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 的选择器的任何想法?
【问题讨论】:
-
stackoverflow.com/questions/70579/… - 这更像是一个建议;但可能值得重新考虑您的
id值。 :) -
是的,我知道。我不知道为什么我会像 2 年前那样写这篇文章,你在 2 年内学到的东西太棒了,不是吗!
标签: javascript jquery sizzle