2016-08-11 32 views
0

我遇到了这个奇怪的scenerio。我正在编写一个简短的代码,它执行了一些jQuery的东西,特别是解析XML文件(jQuery.parseXML()-这将XML文件转换为jQuery对象)。它来到了我试图从所谓< captions.file> XML标签,里面获取文本我试图做到这一点:在PHP的Wordpress短代码中运行JavaScript中的转义字符

var captionsFileURL = (JQXML.find("captions\\.file")).text(); 

根据StackExchange后,我发现,在名称的时期标签需要被转义,因此它不被解释为类filecaptions标签(但它为什么会双重转义?)。当我在控制台中手动尝试它时,这种方式起作用,但在短代码中不能使用JavaScript。然后我试图再次逃脱它:

var captionsFileURL = (JQXML.find("captions\\\.file")).text(); 

...它的工作。我试图理解为什么所有这些逃避需要完成。

回答

0

对于第一个问题(?为什么它的双转义),这里的解释是:

使用任何元字符(如 “#$%&“的()* +,。/:; < =>?@ [] ^`{|}〜)作为名称的文字部分,必须用两个反斜杠:\\来转义 。 foo.bar”,可以使用选择$( “#FOO \\栏”。)

从这里:http://api.jquery.com/category/selectors/

至于为什么你需要添加一个额外的(第三)斜杠到上面的选择器,我不知道 - 可能在解析或在一些转换之后,额外的斜杠被添加到原始字符串。应该看到整个代码片断。