您提到您的 ID 中有括号和斜杠。
无论是方括号还是普通括号,括号在 jQuery 选择器中都有特殊的含义。包括斜线在内,您应该在 HTML ID 中完全避免使用它们。如果您参考 W3C 规范,这基本上是非法的 ID。
jQuery 选择器中的方括号是与属性相关的。
jQuery 选择器中的普通括号是与过滤器相关的。
请参阅 jQuery 选择器:http ://api.jquery.com/category/selectors/
最典型的选择器与CSS 选择器基本相同,并且应该遵循相同的命名约定:参见http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
这里我引用上面的 W3C 链接:
标识符(包括选择器中的元素名称、类和 ID)只能包含字符 [a-zA-Z0-9] 和 ISO 10646 字符 U+00A0 及更高,加上连字符 (-) 和下划线 (_);它们不能以数字、两个连字符或一个连字符后跟一个数字开头。标识符还可以包含转义字符和任何 ISO 10646 字符作为数字代码(请参阅下一项)。例如,标识符“B&W?” 可以写成“B\&W\?” 或“B\26 W\3F”。
这是一个演示来说明这个问题:http: //jsfiddle.net/terryyounghk/tkx36/
虽然您的脚本本质上没有任何问题,但安全网会很好:
// jump to services
$(function () {
$("select.jump").change(function() {
var selected = $(this).find("option:selected").val(),
$selected = $("#" + selected);
if ($selected.length) {
$('html, body').animate({
scrollTop: $selected.offset().top
}, 2000);
} else {
// handle this in case element is not found
}
});
});