繁体   English   中英

使用 Jquery 选择带有大括号的 id

[英]Using Jquery to selecting an id with curly brackets

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

例如<table id="{ACDC3234-D009-4889-931A-FCC069613AB6}-{EF2BF0FD-7927-4194-910F-0FE83EC4F118}"></table>

如何在维护支架的同时使用 JQuery select 表?

目前的代码是:

    $(function(){

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


});

我正在尝试使用 JQuery 绘图工具 Visualise。

对此的任何帮助将不胜感激!

非常感谢!

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

您也可以尝试 escaping 带有\字符的大括号(它们本身必须在 JS 字符串文字中转义):

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

由于它是无效 ID,您可能无法使用 ID 选择器。 不过,这可能有效:

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

现在您正在使用任何属性选择器(无论叫什么)。 由于您可以将任何内容放入属性中,因此您可以(我认为)搜索它。

也许 jQuery 不会允许...

编辑
jQuery 1.3.2 允许它: http://jsfiddle.net/rudiedirkx/VHpFb/

此外,阅读文档有助于:

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

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

规格

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

但是,可能值得注意的是 HTML5 (部分是对现有浏览器如何处理 HTML 的重新标准化)确实消除了这些限制,因此尽管我发出警告,但很可能还有另一种解决方案可以更频繁地工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM