'#monsters[0]'
jQuery 无法将其解析为意味着元素具有 id "monsters[0]"
。它被解析为对具有 idmonsters
和属性的元素的查询0
。
你可以做
$(document.getElementById('monsters[0]')).animate( { left: "+=25" },500);
如果您多次使用它,您可以自己构建一个小实用程序:
function $$(id) { return $(document.getElementById(id)) }
所以你只需要做
$$('monsters[0]').animate( { left: "+=25" },500);
但是您可能应该避免使用这些 id,例如它们会在 CSS 中给您带来同样的问题。在这里,类或数据属性看起来更有意义。
评论 :
当然还有另一种动态转义[
and]
字符的解决方案(以及稍后可能出现的其他问题)。不要这样做:这使代码更加复杂,隐藏了它仅适用于某些形式的 id 的事实,并且更重:您构建一个 jQuery 将解析以了解您需要 id 的字符串,然后 jQuery 将打电话document.getElementById
。直接使用document.getElementById
更清晰、更可靠、更高效。