CSS.escape()

Experimental

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

 CSS.escape() 静态方法返回 DOMString 包含作为参数传递的转义字符串,主要用作CSS选择器的一部分。

语法

escapedStr = CSS.escape(str);

参数

str
The DOMString to be escaped.

实例

基本结果

CSS.escape(".foo#bar")        // "\.foo\#bar"
CSS.escape("()[]{}")          // "\(\)\[\]\{\}"
CSS.escape('--a')             // "--a"
CSS.escape(0)                 // "\30 ",  Unicode代码点“0”是30
CSS.escape('\0')              // "\ufffd",  Unicode替换字符 

在上下文使用

要转义一个字符串作为选择器使用, escape()方法可以用于:

var element = document.querySelector('#' + CSS.escape(id) + ' > img');

escape()方法也可以用于转义字符串,它也转义了不严格需要转义的字符:

var element = document.querySelector('a[href="#' + CSS.escape(fragment) + '"]');

规范

格式 状态 备注
CSS Object Model (CSSOM)
CSS.escape()
Working Draft Initial definition

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 46.0 31 (31)[1] 未实现 未实现 未实现
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 46.0 31.0 (31)[1] 未实现 未实现 未实现 46.0

[1] Firefox 32做了一些小的修改,以符合规范和CSS语法的发展。标识符现在可以以' -- '开始,第二个破折号不能被转义。另外供应商标识符也不会被更改。

参见