2011-04-27 68 views
2

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

例如, <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绘图工具,可视化。

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

非常感谢!

+1

混淆为什么你有'/ {'在开始处和额外的'} /'结尾? – Graza 2011-04-27 17:00:58

+0

感谢您的帮助!下面的'getElementById'答案完美无缺!我知道这很简单。非常感谢所有回答的人! – 2011-04-28 11:37:43

回答

9

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

您也可以尝试用\字符(必须自己在JS字符串文字进行转义)逃脱括号:

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

你的两个解决方案都可以工作(至少在Chrome中) - 刚刚测试过:http://jsbin.com/olube3 – Graza 2011-04-27 17:04:51

2

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

spec

IDNAME令牌必须以字母([A-Za-z])开始和之后可以是任意数量的字母,数字([0-9]),连字符("-"),下划线("_") ,冒号(":")和句号(".")。

但是,它可能是值得注意的是HTML5(这部分是现有的浏览器如何处理HTML一个restandardisation)does remove those restrictions,所以尽管我的警告,这可能是因为另一个解决方案工作往往比不。

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

刚刚此外,reading documentation帮助:

如果你希望使用任何的元字符(如!"#$%&'()*+,./:;<=>[email protected][\]^`{|}~)作为名称的文本部分,你必须逃脱带有两个反斜杠的字符:\\