使用Jquery选择带大括号的id

时间:2011-04-27 16:35:34

标签: javascript jquery sharepoint-2007 graph

我有一个令人沮丧的问题,我确信这是一个简单的答案。不幸的是我似乎无法在任何地方找到它!我有一个我无法控制的表(SharePoint),并且已分配的表ID包含大括号:

e.g。 <table id="{ACDC3234-D009-4889-931A-FCC069613AB6}-{EF2BF0FD-7927-4194-910F-0FE83EC4F118}"></table>

如何在保留括号的同时使用JQuery选择表?

目前的代码是:

    $(function(){

$('/{#{ACAC3258-D068-4799-931A-FCC069613AB6}-{EF2BF0FD-7927-4194-910F-0FE83EC4F118}}/').visualize({type: 'bar', width: '420px'});


});

我正在尝试使用JQuery Graphing Tool,Visualize。

对此的任何帮助都会非常感激!

非常感谢!

4 个答案:

答案 0 :(得分:9)

最简单的选择是致电$(document.getElementById("{ACDC3234-D009-4889-931A-FCC069613AB6}-{EF2BF0FD-7927-4194-910F-0FE83EC4F118}"))

您还可以尝试使用\字符转义大括号(必须在JS字符串文字中转义):

$('#\\{ACDC3234-D009-4889-931A-FCC069613AB6\\}-\\{EF2BF0FD-7927-4194-910F-0FE83EC4F118\\}')

答案 1 :(得分:3)

由于它是无效的ID,您可能无法使用ID选择器。这可能会起作用:

$('table[id="{ACDC3234-D009-4889-931A-FCC069613AB6}-{EF2BF0FD-7927-4194-910F-0FE83EC4F118}"]')

现在你正在使用任何属性选择器(无论调用什么)。既然您可以在属性中放置任何内容,您可以(我认为!)搜索它。

也许jQuery不会允许它......

修改
jQuery 1.3.2允许它:http://jsfiddle.net/rudiedirkx/VHpFb/

答案 2 :(得分:3)

此外,reading documentation有助于:

  

如果您希望使用任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^`{|}~)作为名称的文字部分,则必须使用两个反斜杠转义字符:\\

答案 3 :(得分:2)

该ID在HTML4中无效,因此您不能假设每个浏览器或工具都能够处理它。

来自spec

  

IDNAME令牌必须以字母([A-Za-z])开头,后跟任意数量的字母,数字([0-9]),连字符({{ 1}}),下划线("-"),冒号("_")和句点(":")。

然而,可能值得注意的是HTML5(部分是对现有浏览器如何处理HTML的重新标准化)does remove those restrictions,所以尽管我发出警告,可能另一种解决方案< em>将更频繁地工作。